00506662c8061be801154dd0771807b9139e4bbe
[jalview.git] / src / jalview / datamodel / PDBEntry.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.datamodel;
22
23 import java.util.Hashtable;
24
25 public class PDBEntry
26 {
27   private String file;
28
29   private String type;
30
31   private String id;
32
33   private String chainCode;
34
35   public enum Type
36   {
37     PDB, FILE
38   }
39   Hashtable properties;
40
41   /*
42    * (non-Javadoc)
43    * 
44    * @see java.lang.Object#equals(java.lang.Object)
45    */
46   @Override
47   public boolean equals(Object obj)
48   {
49     if (obj == null || !(obj instanceof PDBEntry))
50     {
51       return false;
52     }
53     if (obj == this)
54     {
55       return true;
56     }
57     PDBEntry o = (PDBEntry) obj;
58     return /*
59             * (file == o.file || (file != null && o.file != null && o.file
60             * .equals(file))) &&
61             */
62     (type == o.type || (type != null && o.type != null && o.type
63                     .equals(type)))
64             && (id == o.id || (id != null && o.id != null && o.id
65                     .equalsIgnoreCase(id)))
66             && (chainCode == o.chainCode || (chainCode != null
67                     && o.chainCode != null && o.chainCode
68                       .equalsIgnoreCase(chainCode)))
69             && (properties == o.properties || (properties != null
70                     && o.properties != null && properties
71                       .equals(o.properties)));
72   }
73
74   /**
75    * Default constructor
76    */
77   public PDBEntry()
78   {
79   }
80
81   /**
82    * Constructor given file path and PDB id.
83    * 
84    * @param filePath
85    */
86   // public PDBEntry(String filePath, String pdbId)
87   // {
88   // this.file = filePath;
89   // this.id = pdbId;
90   // }
91   
92   public PDBEntry(String pdbId, String chain, PDBEntry.Type type,
93           String filePath)
94   {
95     this.id = pdbId;
96     this.chainCode = chain;
97     this.type = type.toString();
98     this.file = filePath;
99   }
100
101   /**
102    * Copy constructor.
103    * 
104    * @param entry
105    */
106   public PDBEntry(PDBEntry entry)
107   {
108     file = entry.file;
109     type = entry.type;
110     id = entry.id;
111     chainCode = entry.chainCode;
112     if (entry.properties != null)
113     {
114       properties = (Hashtable) entry.properties.clone();
115     }
116   }
117
118   public void setFile(String file)
119   {
120     this.file = file;
121   }
122
123   public String getFile()
124   {
125     return file;
126   }
127
128   public void setType(PDBEntry.Type type)
129   {
130     this.type = type.toString();
131   }
132
133   public String getType()
134   {
135     return type;
136   }
137
138   public void setId(String id)
139   {
140     this.id = id;
141   }
142
143   public String getId()
144   {
145     return id;
146   }
147
148   public void setProperty(Hashtable property)
149   {
150     this.properties = property;
151   }
152
153   public Hashtable getProperty()
154   {
155     return properties;
156   }
157
158   public String getChainCode()
159   {
160     return chainCode;
161   }
162
163   public void setChainCode(String chainCode)
164   {
165     this.chainCode = chainCode;
166   }
167
168 }