X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJSONFile.java;fp=src%2Fjalview%2Fio%2FJSONFile.java;h=3f1b1a7d54ae9e75147954c857ec0430f314d6c2;hp=7071a9dd6083791effbb7db481ee0b26c60cc719;hb=8e7cf85a7f61f425e808cac53ead7bc27e402242;hpb=6f1a50917d60504ae3eb46377d3020271accacaf diff --git a/src/jalview/io/JSONFile.java b/src/jalview/io/JSONFile.java index 7071a9d..3f1b1a7 100644 --- a/src/jalview/io/JSONFile.java +++ b/src/jalview/io/JSONFile.java @@ -53,6 +53,7 @@ import jalview.schemes.JalviewColourScheme; import jalview.schemes.ResidueColourScheme; import jalview.util.ColorUtils; import jalview.util.Format; +import jalview.util.JSONUtils; import jalview.viewmodel.seqfeatures.FeaturesDisplayed; import java.awt.Color; @@ -62,12 +63,9 @@ import java.util.ArrayList; import java.util.Hashtable; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Vector; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; - public class JSONFile extends AlignFile implements ComplexAlignFile { private static String version = new BuildDetails().getVersion(); @@ -220,8 +218,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile jsonAlignmentPojo.getSeqGroups().add(seqGrpPojo); } } - org.json.JSONObject generatedJSon = new org.json.JSONObject( - jsonAlignmentPojo); + org.json.JSONObject generatedJSon = new org.json.JSONObject(jsonAlignmentPojo); jsonOutput = generatedJSon.toString(); return jsonOutput.replaceAll("xstart", "xStart").replaceAll("xend", "xEnd"); @@ -398,17 +395,15 @@ public class JSONFile extends AlignFile implements ComplexAlignFile { try { - JSONParser jsonParser = new JSONParser(); - JSONObject alignmentJsonObj = (JSONObject) jsonParser - .parse(jsonAlignmentString); - JSONArray seqJsonArray = (JSONArray) alignmentJsonObj.get("seqs"); - JSONArray alAnnotJsonArray = (JSONArray) alignmentJsonObj + Map alignmentJsonObj = (Map) JSONUtils.parse(jsonAlignmentString); + List seqJsonArray = (List) alignmentJsonObj.get("seqs"); + List alAnnotJsonArray = (List) alignmentJsonObj .get("alignAnnotation"); - JSONArray jsonSeqArray = (JSONArray) alignmentJsonObj + List jsonSeqArray = (List) alignmentJsonObj .get("seqFeatures"); - JSONArray seqGrpJsonArray = (JSONArray) alignmentJsonObj + List seqGrpJsonArray = (List) alignmentJsonObj .get("seqGroups"); - JSONObject jvSettingsJsonObj = (JSONObject) alignmentJsonObj + Map jvSettingsJsonObj = (Map) alignmentJsonObj .get("appSettings"); if (jvSettingsJsonObj != null) @@ -424,10 +419,9 @@ public class JSONFile extends AlignFile implements ComplexAlignFile hiddenSequences = new ArrayList<>(); seqMap = new Hashtable<>(); - for (Iterator sequenceIter = seqJsonArray - .iterator(); sequenceIter.hasNext();) + for (Iterator sequenceIter = seqJsonArray.iterator(); sequenceIter.hasNext();) { - JSONObject sequence = sequenceIter.next(); + Map sequence = (Map) sequenceIter.next(); String sequcenceString = sequence.get("seq").toString(); String sequenceName = sequence.get("name").toString(); String seqUniqueId = sequence.get("id").toString(); @@ -445,10 +439,9 @@ public class JSONFile extends AlignFile implements ComplexAlignFile parseFeatures(jsonSeqArray); - for (Iterator seqGrpIter = seqGrpJsonArray - .iterator(); seqGrpIter.hasNext();) + for (Iterator seqGrpIter = seqGrpJsonArray.iterator(); seqGrpIter.hasNext();) { - JSONObject seqGrpObj = seqGrpIter.next(); + Map seqGrpObj = (Map)seqGrpIter.next(); String grpName = seqGrpObj.get("groupName").toString(); String colourScheme = seqGrpObj.get("colourScheme").toString(); String description = (seqGrpObj.get("description") == null) ? null @@ -464,16 +457,15 @@ public class JSONFile extends AlignFile implements ComplexAlignFile int startRes = Integer .valueOf(seqGrpObj.get("startRes").toString()); int endRes = Integer.valueOf(seqGrpObj.get("endRes").toString()); - JSONArray sequenceRefs = (JSONArray) seqGrpObj.get("sequenceRefs"); + List sequenceRefs = (List) seqGrpObj.get("sequenceRefs"); ArrayList grpSeqs = new ArrayList<>(); if (sequenceRefs.size() > 0) { - Iterator seqHashIter = sequenceRefs.iterator(); + Iterator seqHashIter = sequenceRefs.iterator(); while (seqHashIter.hasNext()) { - String seqHash = seqHashIter.next(); - Sequence sequence = seqMap.get(seqHash); + Sequence sequence = seqMap.get(seqHashIter.next()); if (sequence != null) { grpSeqs.add(sequence); @@ -490,17 +482,15 @@ public class JSONFile extends AlignFile implements ComplexAlignFile } - for (Iterator alAnnotIter = alAnnotJsonArray - .iterator(); alAnnotIter.hasNext();) + for (Iterator alAnnotIter = alAnnotJsonArray.iterator(); alAnnotIter.hasNext();) { - JSONObject alAnnot = alAnnotIter.next(); - JSONArray annotJsonArray = (JSONArray) alAnnot.get("annotations"); + Map alAnnot = (Map) alAnnotIter.next(); + List annotJsonArray = (List) alAnnot.get("annotations"); Annotation[] annotations = new Annotation[annotJsonArray.size()]; int count = 0; - for (Iterator annotIter = annotJsonArray - .iterator(); annotIter.hasNext();) + for (Iterator annotIter = annotJsonArray.iterator(); annotIter.hasNext();) { - JSONObject annot = annotIter.next(); + Map annot = (Map) annotIter.next(); if (annot == null) { annotations[count] = null; @@ -536,7 +526,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile alignAnnot.graph = (alAnnot.get("graphType") == null) ? 0 : Integer.valueOf(alAnnot.get("graphType").toString()); - JSONObject diplaySettings = (JSONObject) alAnnot + Map diplaySettings = (Map) alAnnot .get("annotationSettings"); if (diplaySettings != null) { @@ -604,7 +594,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile return this; } - public void parseHiddenSeqRefsAsList(JSONObject jvSettingsJson) + public void parseHiddenSeqRefsAsList(Map jvSettingsJson) { hiddenSeqRefs = new ArrayList<>(); String hiddenSeqs = (String) jvSettingsJson.get("hiddenSeqs"); @@ -618,7 +608,7 @@ public class JSONFile extends AlignFile implements ComplexAlignFile } } - public void parseHiddenCols(JSONObject jvSettingsJson) + public void parseHiddenCols(Map jvSettingsJson) { String hiddenCols = (String) jvSettingsJson.get("hiddenCols"); if (hiddenCols != null && !hiddenCols.isEmpty()) @@ -635,15 +625,15 @@ public class JSONFile extends AlignFile implements ComplexAlignFile } @SuppressWarnings("unchecked") - private void parseFeatures(JSONArray jsonSeqFeatures) + private void parseFeatures(List jsonSeqFeatures) { if (jsonSeqFeatures != null) { displayedFeatures = new FeaturesDisplayed(); - for (Iterator seqFeatureItr = jsonSeqFeatures + for (Iterator seqFeatureItr = jsonSeqFeatures .iterator(); seqFeatureItr.hasNext();) { - JSONObject jsonFeature = seqFeatureItr.next(); + Map jsonFeature = (Map) seqFeatureItr.next(); Long begin = (Long) jsonFeature.get("xStart"); Long end = (Long) jsonFeature.get("xEnd"); String type = (String) jsonFeature.get("type"); @@ -665,14 +655,13 @@ public class JSONFile extends AlignFile implements ComplexAlignFile SequenceFeature sequenceFeature = new SequenceFeature(type, description, featureBegin, featureEnd, score, featureGrp); - JSONArray linksJsonArray = (JSONArray) jsonFeature.get("links"); + List linksJsonArray = (List) jsonFeature.get("links"); if (linksJsonArray != null && linksJsonArray.size() > 0) { - Iterator linkList = linksJsonArray.iterator(); + Iterator linkList = linksJsonArray.iterator(); while (linkList.hasNext()) { - String link = linkList.next(); - sequenceFeature.addLink(link); + sequenceFeature.addLink((String) linkList.next()); } }