2 * Jalview - A Sequence Alignment Editor and Viewer
3 * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23 import jalview.datamodel.*;
26 public class DBRefUtils
29 * Utilities for handling DBRef objects and their collections.
33 * @param dbrefs Vector of DBRef objects to search
34 * @param sources String[] array of source DBRef IDs to retrieve
37 public static DBRefEntry [] selectRefs(DBRefEntry [] dbrefs, String[] sources) {
42 Hashtable srcs = new Hashtable();
43 Vector res=new Vector();
45 for (int i=0; i<sources.length; i++)
46 srcs.put(new String(sources[i]), new Integer(i));
47 for (int i = 0, j = dbrefs.length; i < j; i++)
49 if (srcs.containsKey(dbrefs[i].getSource()))
55 DBRefEntry [] reply = new DBRefEntry[res.size()];
56 for(int i=0; i<res.size(); i++)
57 reply[i] = (DBRefEntry)res.elementAt(i);
61 // there are probable memory leaks in the hashtable!
66 * isDasCoordinateSystem
68 * @param string String
69 * @param dBRefEntry DBRefEntry
70 * @return boolean true if Source DBRefEntry is compatible with DAS CoordinateSystem name
72 public static Hashtable DasCoordinateSystemsLookup = null;
73 public static boolean isDasCoordinateSystem(String string,
74 DBRefEntry dBRefEntry)
76 if (DasCoordinateSystemsLookup==null)
78 DasCoordinateSystemsLookup = new Hashtable();
79 DasCoordinateSystemsLookup.put("pdbresnum",
80 jalview.datamodel.DBRefSource.PDB);
81 DasCoordinateSystemsLookup.put("uniprot",
82 jalview.datamodel.DBRefSource.UNIPROT);
85 String coordsys = (String) DasCoordinateSystemsLookup.get(string.toLowerCase());
87 return coordsys.equals(dBRefEntry.getSource());