*/
package jalview.ext.ensembl;
+import java.util.Locale;
+
import jalview.datamodel.AlignmentI;
import jalview.datamodel.DBRefSource;
+import jalview.util.JSONUtils;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Map;
import java.util.Set;
-import org.json.simple.JSONArray;
-import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class EnsemblInfo extends EnsemblRestClient
{
fetchDivisions();
}
- return divisions.get(division.toUpperCase());
+ return divisions.get(division.toUpperCase(Locale.ROOT));
}
/**
/*
* for convenience, pre-fill ensembl.org as the domain for "ENSEMBL"
*/
- divisions.put(DBRefSource.ENSEMBL.toUpperCase(), ensemblDomain);
-
- BufferedReader br = null;
- try
- {
- URL url = getDivisionsUrl(ensemblGenomesDomain);
- if (url != null)
- {
- br = getHttpResponse(url, null);
- }
- parseResponse(br, ensemblGenomesDomain);
- } catch (IOException e)
- {
- // ignore
- } finally
- {
- if (br != null)
- {
- try
- {
- br.close();
- } catch (IOException e)
- {
- // ignore
- }
- }
- }
- }
-
- /**
- * Parses the JSON response to /info/divisions, and add each to the lookup map
- *
- * @param br
- * @param domain
- */
- void parseResponse(BufferedReader br, String domain)
- {
- JSONParser jp = new JSONParser();
-
+ divisions.put(DBRefSource.ENSEMBL.toUpperCase(Locale.ROOT), ensemblDomain);
try
{
- JSONArray parsed = (JSONArray) jp.parse(br);
-
- Iterator rvals = parsed.iterator();
+ @SuppressWarnings("unchecked")
+ Iterator<Object> rvals = (Iterator<Object>) getJSON(getDivisionsUrl(ensemblGenomesDomain), null, -1, MODE_ITERATOR, null);
+ if (rvals == null)
+ return;
while (rvals.hasNext())
{
String division = rvals.next().toString();
- divisions.put(division.toUpperCase(), domain);
+ divisions.put(division.toUpperCase(Locale.ROOT), ensemblGenomesDomain);
}
} catch (IOException | ParseException | NumberFormatException e)
{