X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fensembl%2FEnsemblLookup.java;h=0ddef2b999ef57de300f6c4f511414086bf61a66;hb=d7e95f458ebcbbdcc13f8b07357542ab2d7e4547;hp=92763a17cce27e4a571c4a6edaeb9ff68bdfd939;hpb=5363c7b5990f49e763d99f927a206e4ec6eea774;p=jalview.git diff --git a/src/jalview/ext/ensembl/EnsemblLookup.java b/src/jalview/ext/ensembl/EnsemblLookup.java index 92763a1..0ddef2b 100644 --- a/src/jalview/ext/ensembl/EnsemblLookup.java +++ b/src/jalview/ext/ensembl/EnsemblLookup.java @@ -41,6 +41,19 @@ import org.json.simple.parser.ParseException; */ public class EnsemblLookup extends EnsemblRestClient { + + private static final String OBJECT_TYPE_TRANSLATION = "Translation"; + private static final String PARENT = "Parent"; + private static final String OBJECT_TYPE_TRANSCRIPT = "Transcript"; + private static final String ID = "id"; + private static final String OBJECT_TYPE_GENE = "Gene"; + private static final String OBJECT_TYPE = "object_type"; + + /** + * keep track of last identifier retrieved to break loops + */ + private String lastId; + /** * Default constructor (to use rest.ensembl.org) */ @@ -150,7 +163,18 @@ public class EnsemblLookup extends EnsemblRestClient BufferedReader br = null; try { + URL url = getUrl(identifier, objectType); + + if (identifier.equals(lastId)) + { + System.err.println("** Ensembl lookup " + url.toString() + + " looping on Parent!"); + return null; + } + + lastId = identifier; + if (url != null) { br = getHttpResponse(url, ids);