correcting utf8 chars
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / eflora / EfloraImportConfigurator.java
1 /**
2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.cdm.io.eflora;
11
12 import java.io.InputStream;
13 import java.net.MalformedURLException;
14 import java.net.URI;
15 import java.net.URL;
16 import java.util.UUID;
17
18 import org.apache.log4j.Logger;
19 import org.jdom.Element;
20 import org.springframework.stereotype.Component;
21
22 import eu.etaxonomy.cdm.common.XmlHelp;
23 import eu.etaxonomy.cdm.database.ICdmDataSource;
24 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
25 import eu.etaxonomy.cdm.io.common.ImportConfiguratorBase;
26 import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;
27 import eu.etaxonomy.cdm.io.eflora.EfloraImportState;
28 import eu.etaxonomy.cdm.model.reference.ReferenceBase;
29 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
30
31 @Component
32 public class EfloraImportConfigurator extends ImportConfiguratorBase<EfloraImportState, URI> implements IImportConfigurator {
33 private static final Logger logger = Logger.getLogger(EfloraImportConfigurator.class);
34
35 public static EfloraImportConfigurator NewInstance(URI uri, ICdmDataSource destination){
36 return new EfloraImportConfigurator(uri, destination);
37 }
38
39 //TODO
40 private static IInputTransformer defaultTransformer = null;
41 private String classificationTitle = "E-Flora Import";
42 private String sourceReferenceTitle = "E-Flora";
43 private UUID defaultLanguageUuid;
44
45 //TODO move to state, but a state gets lost after each import.invoke, so I can't move this information
46 //from the one import to another import in case I run 2 imports in line
47 private UUID lastTaxonUuid;
48
49 //if true, the keys will be printed after they have been created
50 private boolean doPrintKeys = false;
51
52
53 /* (non-Javadoc)
54 * @see eu.etaxonomy.cdm.io.common.ImportConfiguratorBase#makeIoClassList()
55 */
56 protected void makeIoClassList(){
57 ioClassList = new Class[]{
58 EfloraTaxonImport.class
59 };
60 };
61
62 protected EfloraImportConfigurator() {
63 super(defaultTransformer);
64 }
65
66
67 /**
68 *
69 */
70 protected EfloraImportConfigurator(IInputTransformer transformer) {
71 super(transformer);
72 }
73
74
75 /**
76 * @param url
77 * @param destination
78 */
79 protected EfloraImportConfigurator(URI uri, ICdmDataSource destination) {
80 super(defaultTransformer);
81 setSource(uri);
82 setDestination(destination);
83 }
84
85 /**
86 * @param url
87 * @param destination
88 */
89 protected EfloraImportConfigurator(URI uri, ICdmDataSource destination, IInputTransformer transformer) {
90 super(transformer);
91 setSource(uri);
92 setDestination(destination);
93 }
94
95
96 /* (non-Javadoc)
97 * @see eu.etaxonomy.cdm.io.common.IImportConfigurator#getNewState()
98 */
99 public EfloraImportState getNewState() {
100 return new EfloraImportState(this);
101 }
102
103 /**
104 * @return
105 */
106 public Element getSourceRoot(){
107 try {
108 URL url = getSource().toURL();
109 Object o = url.getContent();
110 InputStream is = (InputStream)o;
111 Element root = XmlHelp.getRoot(is);
112 // makeNamespaces(root);
113 return root;
114 } catch (MalformedURLException e) {
115 e.printStackTrace();
116 }catch (Exception e) {
117 // TODO Auto-generated catch block
118 e.printStackTrace();
119 }
120 return null;
121 }
122
123
124 /* (non-Javadoc)
125 * @see eu.etaxonomy.cdm.io.common.ImportConfiguratorBase#getSourceReference()
126 */
127 @Override
128 public ReferenceBase getSourceReference() {
129 //TODO
130 if (this.sourceReference == null){
131 logger.warn("getSource Reference not yet fully implemented");
132 sourceReference = ReferenceFactory.newGeneric();
133 sourceReference.setTitleCache(sourceReferenceTitle, true);
134 }
135 return sourceReference;
136 }
137
138
139 /* (non-Javadoc)
140 * @see eu.etaxonomy.cdm.io.common.IImportConfigurator#getSourceNameString()
141 */
142 public String getSourceNameString() {
143 if (this.getSource() == null){
144 return null;
145 }else{
146 return this.getSource().toString();
147 }
148 }
149
150 public void setClassificationTitle(String classificationTitle) {
151 this.classificationTitle = classificationTitle;
152 }
153
154 public String getClassificationTitle() {
155 return classificationTitle;
156 }
157
158
159
160 public UUID getLastTaxonUuid() {
161 return lastTaxonUuid;
162 }
163
164 public void setLastTaxonUuid(UUID lastTaxonUuid) {
165 this.lastTaxonUuid = lastTaxonUuid;
166 }
167
168 public void setDoPrintKeys(boolean doPrintKeys) {
169 this.doPrintKeys = doPrintKeys;
170 }
171
172 public boolean isDoPrintKeys() {
173 return doPrintKeys;
174 }
175
176 public UUID getDefaultLanguageUuid() {
177 return this.defaultLanguageUuid;
178 }
179
180 public void setDefaultLanguageUuid(UUID defaultLanguageUuid) {
181 this.defaultLanguageUuid = defaultLanguageUuid;
182 }
183
184
185
186
187
188 }