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.embl.ROOT;
import jalview.xml.binding.embl.XrefType;
import java.io.File;
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;
*/
private static final String EMBL_NOT_FOUND_REPLY = "ERROR 12 No entries found.";
- private static final Pattern SPACE_PATTERN = Pattern.compile(" ");
-
public EmblXmlSource()
{
super();
* @return
* @throws Exception
*/
- public AlignmentI getEmblSequenceRecords(String emprefx, String query)
+ protected AlignmentI getEmblSequenceRecords(String emprefx, String query)
throws Exception
{
startQuery();
* @return
* @throws Exception
*/
- public AlignmentI getEmblSequenceRecords(String emprefx, String query,
+ protected AlignmentI getEmblSequenceRecords(String emprefx, String query,
File reply) throws Exception
{
List<EntryType> entries = null;
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<ROOT> rootElement = um.unmarshal(streamReader, ROOT.class);
+ ROOT root = rootElement.getValue();
/*
* document root contains either "entry" or "entrySet"
/*
* add db references
*/
- List<XrefType> dbRefs = entry.getXref();
- if (dbRefs != null)
+ List<XrefType> 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));
}
}
* 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 + "|"
SequenceFeature sf = new SequenceFeature(type, desc, begin, end, group);
if (!vals.isEmpty())
{
- StringBuilder sb = new StringBuilder();
- boolean first = true;
for (Entry<String, String> 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;
}