in server/catgenome/src/main/java/com/epam/catgenome/manager/externaldb/homologene/HomologeneManager.java [249:386]
public List<HomologeneEntry> readHomologenes(final String path) {
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
xmlInputFactory.setProperty(XMLInputFactory.SUPPORT_DTD, false);
InputStream inputStream = new FileInputStream(path);
XMLStreamReader streamReader = xmlInputFactory.createXMLStreamReader(inputStream);
List<HomologeneEntry> homologeneEntries = new ArrayList<>();
List<Gene> genes = new ArrayList<>();
Set<String> aliases = new HashSet<>();
List<Domain> domains = new ArrayList<>();
HomologeneEntry homologeneEntry = null;
Gene gene = null;
Domain domain = null;
while (streamReader.hasNext()) {
streamReader.next();
if (streamReader.getEventType() == XMLStreamReader.START_ELEMENT) {
switch (streamReader.getLocalName()) {
case "HG-Entry":
homologeneEntry = new HomologeneEntry();
break;
case "HG-Entry_hg-id":
requireNonNull(homologeneEntry);
homologeneEntry.setGroupId(Long.valueOf(streamReader.getElementText()));
break;
case "HG-Entry_version":
requireNonNull(homologeneEntry);
homologeneEntry.setVersion(Long.valueOf(streamReader.getElementText()));
break;
case "HG-Entry_caption":
requireNonNull(homologeneEntry);
homologeneEntry.setCaption(streamReader.getElementText());
break;
case "HG-Entry_taxid":
requireNonNull(homologeneEntry);
homologeneEntry.setTaxId(Long.valueOf(streamReader.getElementText()));
break;
case "HG-Gene":
gene = new Gene();
break;
case "HG-Gene_geneid":
requireNonNull(gene);
gene.setGeneId(Long.valueOf(streamReader.getElementText()));
break;
case "HG-Gene_symbol":
requireNonNull(gene);
gene.setSymbol(streamReader.getElementText());
break;
case "HG-Gene_title":
requireNonNull(gene);
gene.setTitle(streamReader.getElementText());
break;
case "HG-Gene_taxid":
requireNonNull(gene);
gene.setTaxId(Long.valueOf(streamReader.getElementText()));
break;
case "HG-Gene_prot-gi":
requireNonNull(gene);
gene.setProtGi(Long.valueOf(streamReader.getElementText()));
break;
case "HG-Gene_prot-acc":
requireNonNull(gene);
gene.setProtAcc(streamReader.getElementText());
break;
case "HG-Gene_prot-len":
requireNonNull(gene);
gene.setProtLen(Long.valueOf(streamReader.getElementText()));
break;
case "HG-Gene_nuc-gi":
requireNonNull(gene);
gene.setNucGi(Long.valueOf(streamReader.getElementText()));
break;
case "HG-Gene_nuc-acc":
requireNonNull(gene);
gene.setNucAcc(streamReader.getElementText());
break;
case "HG-Gene_locus-tag":
requireNonNull(gene);
gene.setLocusTag(streamReader.getElementText());
break;
case "HG-Gene_aliases_E":
aliases.add(streamReader.getElementText());
break;
case "HG-Domain":
domain = new Domain();
break;
case "HG-Domain_begin":
requireNonNull(domain);
domain.setBegin(Long.valueOf(streamReader.getElementText()));
break;
case "HG-Domain_end":
requireNonNull(domain);
domain.setEnd(Long.valueOf(streamReader.getElementText()));
break;
case "HG-Domain_pssm-id":
requireNonNull(domain);
domain.setPssmId(Long.valueOf(streamReader.getElementText()));
break;
case "HG-Domain_cdd-id":
requireNonNull(domain);
domain.setCddId(streamReader.getElementText());
break;
case "HG-Domain_cdd-name":
requireNonNull(domain);
domain.setCddName(streamReader.getElementText());
break;
default:
break;
}
} else if (streamReader.getEventType() == XMLStreamReader.END_ELEMENT) {
switch (streamReader.getLocalName()) {
case "HG-Entry":
requireNonNull(homologeneEntry);
homologeneEntry.setGenes(genes);
homologeneEntries.add(homologeneEntry);
genes = new ArrayList<>();
homologeneEntry = null;
break;
case "HG-Gene":
requireNonNull(gene);
gene.setAliases(aliases);
gene.setDomains(domains);
genes.add(gene);
aliases = new HashSet<>();
domains = new ArrayList<>();
gene = null;
break;
case "HG-Domain":
domains.add(domain);
domain = null;
break;
default:
break;
}
}
}
streamReader.close();
inputStream.close();
return homologeneEntries;
}