+/*
+ * Jalview - A Sequence Alignment Editor and Viewer
+ * Copyright (C) 2006 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
+ * 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.
+ *
+ * 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
+ */
package jalview.util;
import java.util.*;
import jalview.datamodel.*;
+
public class DBRefUtils
{
/**
* @param sources String[] array of source DBRef IDs to retrieve
* @return Vector
*/
- public static Vector selectRefs(java.util.Vector dbrefs, String[] sources) {
+ public static DBRefEntry [] selectRefs(DBRefEntry [] dbrefs, String[] sources) {
if (dbrefs==null)
return null;
if (sources==null)
return dbrefs;
Hashtable srcs = new Hashtable();
Vector res=new Vector();
+
for (int i=0; i<sources.length; i++)
srcs.put(new String(sources[i]), new Integer(i));
- for (int i=0, j=dbrefs.size(); i<j; i++)
- if (dbrefs.get(i) instanceof jalview.datamodel.DBRefEntry) {
- jalview.datamodel.DBRefEntry entry = (jalview.datamodel.DBRefEntry) dbrefs.get(i);
- if (srcs.containsKey(entry.getSource()))
- res.add(entry);
+ for (int i = 0, j = dbrefs.length; i < j; i++)
+ {
+ if (srcs.containsKey(dbrefs[i].getSource()))
+ res.add(dbrefs[i]);
}
+
if (res.size()>0)
- return res;
+ {
+ DBRefEntry [] reply = new DBRefEntry[res.size()];
+ for(int i=0; i<res.size(); i++)
+ reply[i] = (DBRefEntry)res.elementAt(i);
+ return reply;
+ }
res = null;
// there are probable memory leaks in the hashtable!
return null;