From 729da71b3927879d79062fe4770ed024068bbd17 Mon Sep 17 00:00:00 2001 From: jprocter Date: Thu, 4 Dec 2008 10:21:58 +0000 Subject: [PATCH] select source by implementation class --- src/jalview/ws/seqfetcher/ASequenceFetcher.java | 33 +++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/jalview/ws/seqfetcher/ASequenceFetcher.java b/src/jalview/ws/seqfetcher/ASequenceFetcher.java index 8a8cf44..013fb15 100644 --- a/src/jalview/ws/seqfetcher/ASequenceFetcher.java +++ b/src/jalview/ws/seqfetcher/ASequenceFetcher.java @@ -297,4 +297,37 @@ public class ASequenceFetcher return false; } + /** + * select sources which are implemented by instances of the given class + * @param class that implements DbSourceProxy + * @return null or vector of source names for fetchers + */ + public String[] getDbInstances(Class class1) + { + if (!jalview.ws.seqfetcher.DbSourceProxy.class.isAssignableFrom(class1)) + { + throw new Error("Implmentation Error - getDbInstances must be given a class that implements jalview.ws.seqfetcher.DbSourceProxy (was given '"+class1+"')"); + } + if (FETCHABLEDBS==null) + { + return null; + } + String[] sources = null; + Vector src = new Vector(); + Enumeration dbs = FETCHABLEDBS.keys(); + while (dbs.hasMoreElements()) + { + String dbn = (String) dbs.nextElement(); + DbSourceProxy dbp = (DbSourceProxy) FETCHABLEDBS.get(dbn); + if (class1.isAssignableFrom(dbp.getClass())) + { + src.addElement(dbn); + } + } + if (src.size()>0) + { + src.copyInto(sources = new String[src.size()]); + } + return sources; + } } -- 1.7.10.2