annotate src/de/mpiwg/anteater/xml/impl/LinnaeusParser.java @ 5:35d8c78ccd36

include linneaus findings
author jdamerow
date Thu, 25 Oct 2012 15:26:03 -0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
1 package de.mpiwg.anteater.xml.impl;
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
2
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
3 import java.io.InputStream;
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
4 import java.util.ArrayList;
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
5 import java.util.List;
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
6
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
7 import org.jdom2.Attribute;
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
8 import org.jdom2.DataConversionException;
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
9 import org.jdom2.Element;
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
10
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
11 import de.mpiwg.anteater.species.scientific.ScientificName;
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
12 import de.mpiwg.anteater.xml.ICommonNameFinderParser;
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
13
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
14 public class LinnaeusParser extends JDOMParser implements ICommonNameFinderParser {
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
15
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
16 public LinnaeusParser(String content) {
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
17 super(content, false);
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
18 }
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
19
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
20 public LinnaeusParser(InputStream stream) {
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
21 super(stream);
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
22 }
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
23
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
24 @Override
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
25 public List<ScientificName> parseSpeciesNames() {
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
26 List<Element> names = executeXPath("/linnaeus/species", null);
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
27
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
28 List<ScientificName> commonNames = new ArrayList<ScientificName>();
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
29 for (Element name : names) {
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
30 ScientificName commonName = new ScientificName();
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
31
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
32 Attribute id = name.getAttribute("id");
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
33 commonName.setNcbiId(id.getValue());
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
34 commonName.setIdentifiedName(id.getValue());
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
35
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
36 Attribute start = name.getAttribute("start");
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
37 try {
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
38 commonName.setStart(start.getIntValue());
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
39 } catch (DataConversionException e) {
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
40 // TODO Auto-generated catch block
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
41 e.printStackTrace();
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
42 }
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
43
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
44 Attribute end = name.getAttribute("end");
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
45 try {
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
46 commonName.setLength(end.getIntValue() - start.getIntValue());
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
47 } catch (DataConversionException e) {
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
48 // TODO Auto-generated catch block
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
49 e.printStackTrace();
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
50 }
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
51
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
52 Attribute text = name.getAttribute("text");
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
53 commonName.setScientificName(text.getValue());
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
54 commonName.setReferenceInText(text.getValue());
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
55
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
56 commonNames.add(commonName);
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
57 }
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
58
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
59 return commonNames;
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
60 }
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
61
35d8c78ccd36 include linneaus findings
jdamerow
parents:
diff changeset
62 }