X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fdbsources%2FEmblXmlSource.java;h=19366e0782b01ee0d3af392e1ec73458d5b513b6;hb=d49c33d2fbb65ad7477cb3a538b9e32a68f374a2;hp=8f55080532694eb96e52b2b7c8bd9e178807698c;hpb=7e82e1fed011077e5cd4cc40ac8ad3519d7c47a8;p=jalview.git diff --git a/src/jalview/ws/dbsources/EmblXmlSource.java b/src/jalview/ws/dbsources/EmblXmlSource.java index 8f55080..19366e0 100644 --- a/src/jalview/ws/dbsources/EmblXmlSource.java +++ b/src/jalview/ws/dbsources/EmblXmlSource.java @@ -40,6 +40,8 @@ import jalview.ws.ebi.EBIFetchClient; import jalview.xml.binding.embl.EntryType; import jalview.xml.binding.embl.EntryType.Feature; import jalview.xml.binding.embl.EntryType.Feature.Qualifier; +import jalview.xml.binding.jalview.JalviewModel; +import jalview.xml.binding.embl.ROOT; import jalview.xml.binding.embl.XrefType; import java.io.File; @@ -52,9 +54,9 @@ import java.util.Hashtable; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.regex.Pattern; import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.stream.FactoryConfigurationError; import javax.xml.stream.XMLInputFactory; @@ -68,8 +70,6 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy */ private static final String EMBL_NOT_FOUND_REPLY = "ERROR 12 No entries found."; - private static final Pattern SPACE_PATTERN = Pattern.compile(" "); - public EmblXmlSource() { super(); @@ -85,7 +85,7 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy * @return * @throws Exception */ - public AlignmentI getEmblSequenceRecords(String emprefx, String query) + protected AlignmentI getEmblSequenceRecords(String emprefx, String query) throws Exception { startQuery(); @@ -118,7 +118,7 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy * @return * @throws Exception */ - public AlignmentI getEmblSequenceRecords(String emprefx, String query, + protected AlignmentI getEmblSequenceRecords(String emprefx, String query, File reply) throws Exception { List entries = null; @@ -183,8 +183,8 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy XMLStreamReader streamReader = XMLInputFactory.newInstance() .createXMLStreamReader(is); javax.xml.bind.Unmarshaller um = jc.createUnmarshaller(); - jalview.xml.binding.embl.ROOT root = (jalview.xml.binding.embl.ROOT) um - .unmarshal(streamReader); + JAXBElement rootElement = um.unmarshal(streamReader, ROOT.class); + ROOT root = rootElement.getValue(); /* * document root contains either "entry" or "entrySet" @@ -244,14 +244,18 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy /* * add db references */ - List dbRefs = entry.getXref(); - if (dbRefs != null) + List xrefs = entry.getXref(); + if (xrefs != null) { - for (XrefType dbref : dbRefs) + for (XrefType xref : xrefs) { - String acc = dbref.getId(); - String source = DBRefUtils.getCanonicalName(dbref.getDb()); - String version = dbref.getSecondaryId(); + String acc = xref.getId(); + String source = DBRefUtils.getCanonicalName(xref.getDb()); + String version = xref.getSecondaryId(); + if (version == null || "".equals(version)) + { + version = "0"; + } dna.addDBRef(new DBRefEntry(source, version, acc)); } } @@ -524,10 +528,14 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy * ensure UniProtKB/Swiss-Prot converted to UNIPROT */ String source = DBRefUtils.getCanonicalName(xref.getDb()); - DBRefEntry dbref = new DBRefEntry(source, xref.getSecondaryId(), - xref.getId()); - DBRefEntry proteinDbRef = new DBRefEntry(dbref.getSource(), - dbref.getVersion(), dbref.getAccessionId()); + String version = xref.getSecondaryId(); + if (version == null || "".equals(version)) + { + version = "0"; + } + DBRefEntry dbref = new DBRefEntry(source, version, xref.getId()); + DBRefEntry proteinDbRef = new DBRefEntry(source, version, + dbref.getAccessionId()); if (source.equals(DBRefSource.UNIPROT)) { String proteinSeqName = DBRefSource.UNIPROT + "|" @@ -695,19 +703,10 @@ public abstract class EmblXmlSource extends EbiFileRetrievedProxy SequenceFeature sf = new SequenceFeature(type, desc, begin, end, group); if (!vals.isEmpty()) { - StringBuilder sb = new StringBuilder(); - boolean first = true; for (Entry val : vals.entrySet()) { - if (!first) - { - sb.append(";"); - } - sb.append(val.getKey()).append("=").append(val.getValue()); - first = false; sf.setValue(val.getKey(), val.getValue()); } - sf.setAttributes(sb.toString()); } return sf; }