Element cnde = doc.getRootElement();
currentChemID = Integer.parseInt(cnde.getAttributeValue("currentChemID"));
currentNameID = Integer.parseInt(cnde.getAttributeValue("currentNameID"));
Element names = cnde.getFirstChildElement("names");
Elements nameElems = names.getChildElements();
for(int i=0;i<nameElems.size();i++) {
Element nameElem = nameElems.get(i);
String name = nameElem.getChild(0).getValue();
int id = Integer.parseInt(nameElem.getAttributeValue("id"));
nameToNameID.put(name, id);
nameIDToName.put(id, name);
}
Element inchis = cnde.getFirstChildElement("inchis");
Elements inchiElems = inchis.getChildElements();
for(int i=0;i<inchiElems.size();i++) {
Element inchiElem = inchiElems.get(i);
String inchi = inchiElem.getChild(0).getValue();
int id = Integer.parseInt(inchiElem.getAttributeValue("id"));
inchiToChemID.put(inchi, id);
chemIDToInchi.put(id, inchi);
}
Element smiles = cnde.getFirstChildElement("smiles");
Elements smileElems = smiles.getChildElements();
for(int i=0;i<smileElems.size();i++) {
Element smileElem = smileElems.get(i);
String smile = smileElem.getChild(0).getValue();
int id = Integer.parseInt(smileElem.getAttributeValue("id"));
chemIDToSmiles.put(id, smile);
}
Element mappings = cnde.getFirstChildElement("mappings");
Elements mappingElems = mappings.getChildElements();
for(int i=0;i<mappingElems.size();i++) {
Element mapping = mappingElems.get(i);
int chemID = Integer.parseInt(mapping.getAttributeValue("chemID"));
int nameID = Integer.parseInt(mapping.getAttributeValue("nameID"));
IDMapping idm = new IDMapping(nameID, chemID);
idMap.add(idm);
}
Element stops = cnde.getFirstChildElement("stops");
if(stops != null) {
Elements stopElems = stops.getChildElements();
for(int i=0;i<stopElems.size();i++) {
Element stop = stopElems.get(i);
stopWords.add(stop.getValue());
}
}
Element tpc = cnde.getFirstChildElement("triedPubChem");
if(tpc != null) {
Elements tpcElems = tpc.getChildElements();
for(int i=0;i<tpcElems.size();i++) {
Element tpce = tpcElems.get(i);
triedPubChem.add(tpce.getValue());
}
}
Element ont = cnde.getFirstChildElement("ontology");
if(ont != null) {
Elements ontElems = ont.getChildElements();
for(int i=0;i<ontElems.size();i++) {
Element onte = ontElems.get(i);
ontMap.add(new OntologyMapping(Integer.parseInt(onte.getAttributeValue("chemID")), onte.getValue()));
}
}
} finally {
rwLock.writeLock().unlock();