X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FPDBEntry.java;h=80e2de87aef0e4d145afa9065578479146550c55;hb=a30b21bb66cb7faef19bd1c2417be687970babcf;hp=97fb08ddae8428f89008b165fe6909ad99d369c4;hpb=7d67fb613ec026dc9a265e351e7fab542e3f1d61;p=jalview.git diff --git a/src/jalview/datamodel/PDBEntry.java b/src/jalview/datamodel/PDBEntry.java index 97fb08d..80e2de8 100755 --- a/src/jalview/datamodel/PDBEntry.java +++ b/src/jalview/datamodel/PDBEntry.java @@ -46,11 +46,21 @@ public class PDBEntry public enum Type { - // TODO is FILE needed; if not is this needed or can we + // TODO is FILE needed; if not is this enum needed, or can we // use FileFormatI for PDB, MMCIF? - PDB("pdb", "xml"), MMCIF("mmcif", "mmcif"), FILE("?", "?"); + PDB("pdb", "pdb"), MMCIF("mmcif", "cif"), FILE("?", "?"); + + /* + * file extension for cached structure file; must be one that + * is recognised by Chimera 'open' command + * @see https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/filetypes.html + */ String ext; + /* + * format specifier used in dbfetch request + * @see http://www.ebi.ac.uk/Tools/dbfetch/dbfetch/dbfetch.databases#pdb + */ String format; private Type(String fmt, String ex) @@ -63,6 +73,7 @@ public class PDBEntry { return format; } + public String getExtension() { return ext; @@ -120,18 +131,11 @@ public class PDBEntry * CaseInsensitiveString, so we are in effect doing a * case-insensitive comparison of chain codes */ - boolean idMatches = id == o.id - || (id != null && id.equalsIgnoreCase(o.id)); - boolean fileMatches = file == o.file - || (file != null && file.equals(o.file)); - boolean typeMatches = type == o.type - || (type != null && type.equals(o.type)); - if (idMatches && fileMatches && typeMatches) - { - return properties == o.properties - || (properties != null && properties.equals(o.properties)); - } - return false; + return (id == o.id || (id != null && id.equalsIgnoreCase(o.id))) + && (file == o.file || (file != null && file.equals(o.file))) + && (type == o.type || (type != null && type.equals(o.type))) + && (properties == o.properties || (properties != null + && properties.equals(o.properties))); } /** @@ -141,7 +145,6 @@ public class PDBEntry { } - public PDBEntry(String pdbId, String chain, PDBEntry.Type type, String filePath) { @@ -154,11 +157,12 @@ public class PDBEntry * @param entryType * @param filePath */ - void init(String pdbId, String chain, PDBEntry.Type entryType, String filePath) + void init(String pdbId, String chain, PDBEntry.Type entryType, + String filePath) { this.id = pdbId; this.type = entryType == null ? null : entryType.toString(); - this.file = filePath; + this.file = (filePath == null ? null : filePath.replace('\\', '/')); setChainCode(chain); } @@ -189,8 +193,8 @@ public class PDBEntry { if (!DBRefSource.PDB.equals(dbr.getSource())) { - throw new IllegalArgumentException("Invalid source: " - + dbr.getSource()); + throw new IllegalArgumentException( + "Invalid source: " + dbr.getSource()); } String pdbId = dbr.getAccessionId(); @@ -209,7 +213,7 @@ public class PDBEntry public void setFile(String f) { - this.file = f; + this.file = f.replace('\\', '/'); } public String getFile() @@ -246,7 +250,7 @@ public class PDBEntry { if (this.properties == null) { - this.properties = new Hashtable(); + this.properties = new Hashtable<>(); } properties.put(key, value); }