import jalview.util.DBRefUtils;
import jalview.util.IntRangeComparator;
import jalview.util.MapList;
+import jalview.util.Platform;
-import java.io.BufferedReader;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
/**
String accId = querySeq.getName();
try
{
+ System.out.println("Adding protein product for " + accId);
AlignmentI protein = new EnsemblProtein(getDomain())
.getSequenceRecords(accId);
if (protein == null || protein.getHeight() == 0)
inProgress = false;
throw new JalviewException("ENSEMBL Rest API not available.");
}
- BufferedReader br = getSequenceReader(ids);
- if (br == null)
- {
- return alignment;
- }
+ Platform.timeCheck("EnsemblSeqProx.fetchSeq ", Platform.TIME_MARK);
- List<SequenceI> seqs = parseSequenceJson(br);
+ List<SequenceI> seqs = parseSequenceJson(ids);
+ if (seqs == null)
+ return alignment;
if (seqs.isEmpty())
{
* @return a single jalview.datamodel.Sequence
* @see http://rest.ensembl.org/documentation/info/sequence_id
*/
- protected List<SequenceI> parseSequenceJson(BufferedReader br)
+ @SuppressWarnings("unchecked")
+ protected List<SequenceI> parseSequenceJson(List<String> ids)
{
- JSONParser jp = new JSONParser();
List<SequenceI> result = new ArrayList<>();
try
{
* for now, assumes only one sequence returned; refactor if needed
* in future to handle a JSONArray with more than one
*/
- final JSONObject val = (JSONObject) jp.parse(br);
+ Map<String, Object> val = (Map<String, Object>) getJSON(null, ids, -1, MODE_MAP, null);
+ if (val == null)
+ return null;
Object s = val.get("desc");
String desc = s == null ? null : s.toString();
s = val.get("id");