Export of IPRStatements, taxon names and the descriptive system
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / sdd / SDDImportConfigurator.java
1 package eu.etaxonomy.cdm.io.sdd;
2
3 import java.io.InputStream;
4 import java.net.MalformedURLException;
5 import java.net.URL;
6
7 import org.apache.log4j.Logger;
8 import org.jdom.Element;
9 import org.jdom.Namespace;
10
11 import eu.etaxonomy.cdm.common.XmlHelp;
12 import eu.etaxonomy.cdm.database.ICdmDataSource;
13 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
14 import eu.etaxonomy.cdm.io.common.ImportConfiguratorBase;
15 import eu.etaxonomy.cdm.model.reference.Database;
16 import eu.etaxonomy.cdm.model.reference.ReferenceBase;
17
18 public class SDDImportConfigurator extends ImportConfiguratorBase implements IImportConfigurator {
19 private static final Logger logger = Logger.getLogger(SDDImportConfigurator.class);
20
21 //xml xmlNamespace
22 Namespace sddNamespace;
23
24 protected void makeIoClassList(){
25 ioClassList = new Class[]{
26 SDDDescriptionIO.class
27 };
28 };
29
30 public static SDDImportConfigurator NewInstance(String url,
31 ICdmDataSource destination){
32 return new SDDImportConfigurator(url, destination);
33 }
34
35
36 /**
37 * @param berlinModelSource
38 * @param sourceReference
39 * @param destination
40 */
41 private SDDImportConfigurator(String url, ICdmDataSource destination) {
42 super();
43 setSource(url);
44 setDestination(destination);
45 }
46
47
48 /* (non-Javadoc)
49 * @see eu.etaxonomy.cdm.io.common.ImportConfiguratorBase#getSource()
50 */
51 public String getSource() {
52 return (String)super.getSource();
53 }
54
55 /**
56 * @param file
57 */
58 public void setSource(String file) {
59 super.setSource(file);
60 }
61
62 /**
63 * @return
64 */
65 public Element getSourceRoot(){
66 String source = getSource();
67 try {
68 URL url;
69 url = new URL(source);
70 Object o = url.getContent();
71 InputStream is = (InputStream)o;
72 Element root = XmlHelp.getRoot(is);
73 makeNamespaces(root);
74 return root;
75 } catch (MalformedURLException e) {
76 e.printStackTrace();
77 }catch (Exception e) {
78 // TODO Auto-generated catch block
79 e.printStackTrace();
80 }
81 return null;
82 }
83
84 private boolean makeNamespaces(Element root){
85 sddNamespace = root.getNamespace();
86 return true;
87 }
88
89
90 /* (non-Javadoc)
91 * @see eu.etaxonomy.cdm.io.common.ImportConfiguratorBase#getSourceReference()
92 */
93 @Override
94 public ReferenceBase getSourceReference() {
95 //TODO
96 if (this.sourceReference == null){
97 logger.warn("getSource Reference not yet fully implemented");
98 sourceReference = Database.NewInstance();
99 sourceReference.setTitleCache("XXX");
100 }
101 return sourceReference;
102 }
103
104
105 /* (non-Javadoc)
106 * @see eu.etaxonomy.cdm.io.common.IImportConfigurator#getSourceNameString()
107 */
108 public String getSourceNameString() {
109 if (this.getSource() == null){
110 return null;
111 }else{
112 return this.getSource();
113 }
114 }
115
116 public Namespace getSddNamespace() {
117 return sddNamespace;
118 }
119
120 public void setSddNamespace(Namespace xmlNamespace) {
121 this.sddNamespace = xmlNamespace;
122 }
123 }