/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2)
- * Copyright (C) 2015 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
public enum Type
{
- PDB, MMCIF, FILE;
+ // TODO is FILE needed; if not is this enum needed, or can we
+ // use FileFormatI for PDB, MMCIF?
+ 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)
+ {
+ format = fmt;
+ ext = ex;
+ }
+
+ public String getFormat()
+ {
+ return format;
+ }
+
+ public String getExtension()
+ {
+ return ext;
+ }
+
/**
* case insensitive matching for Type enum
*
}
}
-
/**
* Answers true if obj is a PDBEntry with the same id and chain code (both
* ignoring case), file, type and properties
* 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)));
}
/**
{
}
- /**
- * Constructor given file path and PDB id.
- *
- * @param filePath
- */
- // public PDBEntry(String filePath, String pdbId)
- // {
- // this.file = filePath;
- // this.id = pdbId;
- // }
-
public PDBEntry(String pdbId, String chain, PDBEntry.Type type,
String filePath)
{
* @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);
}
{
if (!DBRefSource.PDB.equals(dbr.getSource()))
{
- throw new IllegalArgumentException("Invalid source: "
- + dbr.getSource());
+ throw new IllegalArgumentException(
+ "Invalid source: " + dbr.getSource());
}
String pdbId = dbr.getAccessionId();
public void setFile(String f)
{
- this.file = f;
+ this.file = f.replace('\\', '/');
}
public String getFile()
{
if (this.properties == null)
{
- this.properties = new Hashtable<String, Object>();
+ this.properties = new Hashtable<>();
}
properties.put(key, value);
}