X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FPDBEntry.java;h=37dfdbf14057f4184b9fdf36a5ee5183d8976fdf;hb=ea1b74357e517baef19ef6f862bc7775f7a7804e;hp=12ed4e0503e1a3ef260817085687105612fca011;hpb=59d682209891099d46b960509907c79e3fb276fe;p=jalview.git diff --git a/src/jalview/datamodel/PDBEntry.java b/src/jalview/datamodel/PDBEntry.java index 12ed4e0..37dfdbf 100755 --- a/src/jalview/datamodel/PDBEntry.java +++ b/src/jalview/datamodel/PDBEntry.java @@ -1,39 +1,70 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) - * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.datamodel; -import java.util.*; +import java.util.Hashtable; public class PDBEntry { - String file; + private String file; - String type; + private String type; - String id; + private String id; - Hashtable properties; + private String chainCode; + + public enum Type + { + // TODO is FILE needed; if not is this needed or can we + // use FileFormatI for PDB, MMCIF? + PDB("pdb", "xml"), MMCIF("mmcif", "mmcif"), FILE("?", "?"); + String ext; + + String format; + + private Type(String fmt, String ex) + { + format = fmt; + ext = ex; + } + + public String getFormat() + { + return format; + } + public String getExtension() + { + return ext; + } + } + + Hashtable properties; /* * (non-Javadoc) * * @see java.lang.Object#equals(java.lang.Object) */ + @Override public boolean equals(Object obj) { if (obj == null || !(obj instanceof PDBEntry)) @@ -41,28 +72,61 @@ public class PDBEntry return false; } if (obj == this) + { return true; + } PDBEntry o = (PDBEntry) obj; - return (file == o.file || (file != null && o.file != null && o.file - .equals(file))) - && (type == o.type || (type != null && o.type != null && o.type - .equals(type))) + return (type == o.type || (type != null && o.type != null && o.type + .equals(type))) && (id == o.id || (id != null && o.id != null && o.id .equalsIgnoreCase(id))) + && (chainCode == o.chainCode || (chainCode != null + && o.chainCode != null && o.chainCode + .equalsIgnoreCase(chainCode))) && (properties == o.properties || (properties != null && o.properties != null && properties .equals(o.properties))); + } + /** + * Default constructor + */ public PDBEntry() { } + /** + * 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) + { + this.id = pdbId; + this.chainCode = chain; + this.type = type == null ? null : type.toString(); + this.file = filePath; + } + + /** + * Copy constructor. + * + * @param entry + */ public PDBEntry(PDBEntry entry) { file = entry.file; type = entry.type; id = entry.id; + chainCode = entry.chainCode; if (entry.properties != null) { properties = (Hashtable) entry.properties.clone(); @@ -79,9 +143,14 @@ public class PDBEntry return file; } - public void setType(String type) + public void setType(String t) + { + this.type = t; + } + + public void setType(PDBEntry.Type type) { - this.type = type; + this.type = type == null ? null : type.toString(); } public String getType() @@ -104,9 +173,24 @@ public class PDBEntry this.properties = property; } - public Hashtable getProperty() + public Hashtable getProperty() { return properties; } + public String getChainCode() + { + return chainCode; + } + + public void setChainCode(String chainCode) + { + this.chainCode = chainCode; + } + + @Override + public String toString() + { + return id; + } }