X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FPDBEntry.java;h=00506662c8061be801154dd0771807b9139e4bbe;hb=bc27e1b604af729b363da1f29bdd5774ca79f4e4;hp=69f0d68e54410f2cf8be31ccafefbe6bdad47393;hpb=33d29753b74b33be28fef39da85fc9fbb256f6c8;p=jalview.git diff --git a/src/jalview/datamodel/PDBEntry.java b/src/jalview/datamodel/PDBEntry.java index 69f0d68..0050666 100755 --- a/src/jalview/datamodel/PDBEntry.java +++ b/src/jalview/datamodel/PDBEntry.java @@ -1,60 +1,120 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle - * - * This program 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 2 + * 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. - * - * This program 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. - * + * + * 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 this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * 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; - String type; - String id; + private String file; + + private String type; + + private String id; + + private String chainCode; + + public enum Type + { + PDB, FILE + } Hashtable properties; - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see java.lang.Object#equals(java.lang.Object) */ + @Override public boolean equals(Object obj) { - if (obj==null || !(obj instanceof PDBEntry)) + if (obj == null || !(obj instanceof PDBEntry)) { - return false; + return false; } - if (obj==this) + 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))) - && (id==o.id || (id!=null && o.id!=null && o.id.equalsIgnoreCase(id))) - && (properties==o.properties || (properties!=null && o.properties!=null && properties.equals(o.properties))); + 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))) + && (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() - {} - public PDBEntry(PDBEntry entry) { + { + } + + /** + * 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.toString(); + this.file = filePath; + } + + /** + * Copy constructor. + * + * @param entry + */ + public PDBEntry(PDBEntry entry) + { file = entry.file; type = entry.type; id = entry.id; - if (entry.properties!=null) + chainCode = entry.chainCode; + if (entry.properties != null) { properties = (Hashtable) entry.properties.clone(); } } + public void setFile(String file) { this.file = file; @@ -65,9 +125,9 @@ public class PDBEntry return file; } - public void setType(String type) + public void setType(PDBEntry.Type type) { - this.type = type; + this.type = type.toString(); } public String getType() @@ -95,4 +155,14 @@ public class PDBEntry return properties; } + public String getChainCode() + { + return chainCode; + } + + public void setChainCode(String chainCode) + { + this.chainCode = chainCode; + } + }