1
2
3
4
5
6
7
8
9
10 package eu.etaxonomy.cdm.io.berlinModel.in;
11
12 import java.io.File;
13 import java.lang.reflect.Method;
14 import java.net.MalformedURLException;
15 import java.net.URL;
16 import java.util.HashSet;
17 import java.util.Set;
18
19 import org.apache.log4j.Logger;
20
21 import eu.etaxonomy.cdm.database.ICdmDataSource;
22 import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelTaxonImport.PublishMarkerChooser;
23 import eu.etaxonomy.cdm.io.berlinModel.in.validation.BerlinModelGeneralImportValidator;
24 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
25 import eu.etaxonomy.cdm.io.common.ImportConfiguratorBase;
26 import eu.etaxonomy.cdm.io.common.ImportStateBase;
27 import eu.etaxonomy.cdm.io.common.Source;
28 import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;
29 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
30 import eu.etaxonomy.cdm.model.reference.ReferenceBase;
31 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
32 import eu.etaxonomy.cdm.model.taxon.Synonym;
33
34
35
36
37
38
39 public class BerlinModelImportConfigurator extends ImportConfiguratorBase<BerlinModelImportState> implements IImportConfigurator{
40 private static Logger logger = Logger.getLogger(BerlinModelImportConfigurator.class);
41
42 public static BerlinModelImportConfigurator NewInstance(Source berlinModelSource, ICdmDataSource destination){
43 return new BerlinModelImportConfigurator(berlinModelSource, destination);
44 }
45
46 private PublishMarkerChooser taxonPublishMarker = PublishMarkerChooser.ALL;
47
48
49 private static IInputTransformer defaultTransformer = null;
50
51 private boolean doCommonNames = true;
52
53
54
55 private int recordsPerTransaction = 1000;
56
57 private Method namerelationshipTypeMethod;
58 private Method uuidForDefTermMethod;
59 private Method userTransformationMethod;
60 private Method nameTypeDesignationStatusMethod;
61
62 private Set<Synonym> proParteSynonyms = new HashSet<Synonym>();
63 private Set<Synonym> partialSynonyms = new HashSet<Synonym>();
64
65
66 private URL mediaUrl;
67 private File mediaPath;
68 private int maximumNumberOfNameFacts;
69 private boolean isIgnore0AuthorTeam = false;
70
71 protected void makeIoClassList(){
72 ioClassList = new Class[]{
73 BerlinModelGeneralImportValidator.class
74 , BerlinModelUserImport.class
75 , BerlinModelAuthorImport.class
76 , BerlinModelAuthorTeamImport.class
77 , BerlinModelRefDetailImport.class
78 , BerlinModelReferenceImport.class
79 , BerlinModelTaxonNameImport.class
80 , BerlinModelTaxonNameRelationImport.class
81 , BerlinModelNameStatusImport.class
82 , BerlinModelNameFactsImport.class
83 , BerlinModelTypesImport.class
84 , BerlinModelTaxonImport.class
85 , BerlinModelTaxonRelationImport.class
86 , BerlinModelCommonNamesImport.class
87 , BerlinModelFactsImport.class
88 , BerlinModelOccurrenceImport.class
89 , BerlinModelOccurrenceSourceImport.class
90 , BerlinModelWebMarkerCategoryImport.class
91 , BerlinModelWebMarkerImport.class
92 };
93 }
94
95
96
97
98
99
100 public ImportStateBase getNewState() {
101 return new BerlinModelImportState(this);
102 }
103
104
105
106
107
108
109
110
111 private BerlinModelImportConfigurator(Source berlinModelSource, ICdmDataSource destination) {
112 super(defaultTransformer);
113 setNomenclaturalCode(NomenclaturalCode.ICBN);
114 setSource(berlinModelSource);
115 setDestination(destination);
116 }
117
118
119 public Source getSource() {
120 return (Source)super.getSource();
121 }
122 public void setSource(Source berlinModelSource) {
123 super.setSource(berlinModelSource);
124 }
125
126
127
128
129 public ReferenceBase getSourceReference() {
130 ReferenceFactory refFactory = ReferenceFactory.newInstance();
131 if (sourceReference == null){
132 sourceReference = refFactory.newDatabase();
133 if (getSource() != null){
134 sourceReference.setTitleCache(getSource().getDatabase(), true);
135 }
136 }
137 return sourceReference;
138 }
139
140
141
142
143
144 public String getSourceNameString() {
145 if (this.getSource() == null){
146 return null;
147 }else{
148 return this.getSource().getDatabase();
149 }
150 }
151
152 protected void addProParteSynonym(Synonym proParteSynonym){
153 this.proParteSynonyms.add(proParteSynonym);
154 }
155
156 protected boolean isProParteSynonym(Synonym synonym){
157 return this.proParteSynonyms.contains(synonym);
158 }
159
160 protected void addPartialSynonym(Synonym partialSynonym){
161 this.partialSynonyms.add(partialSynonym);
162 }
163
164 protected boolean isPartialSynonym(Synonym synonym){
165 return this.partialSynonyms.contains(synonym);
166 }
167
168
169
170
171 public URL getMediaUrl() {
172 return mediaUrl;
173 }
174
175
176
177
178 public void setMediaUrl(URL mediaUrl) {
179 this.mediaUrl = mediaUrl;
180 }
181
182
183
184
185 public File getMediaPath() {
186 return mediaPath;
187 }
188
189
190
191
192 public void setMediaPath(File mediaPath) {
193 this.mediaPath = mediaPath;
194 }
195
196 public void setMediaPath(String mediaPathString){
197 this.mediaPath = new File(mediaPathString);
198 }
199
200 public void setMediaUrl(String mediaUrlString) {
201 try {
202 this.mediaUrl = new URL(mediaUrlString);
203 } catch (MalformedURLException e) {
204 logger.error("Could not set mediaUrl because it was malformed: " + mediaUrlString);
205 }
206 }
207
208
209
210
211 public int getMaximumNumberOfNameFacts() {
212 return maximumNumberOfNameFacts;
213 }
214
215
216
217
218
219
220 public void setMaximumNumberOfNameFacts(int maximumNumberOfNameFacts) {
221 this.maximumNumberOfNameFacts = maximumNumberOfNameFacts;
222 }
223
224
225
226
227
228 public boolean isIgnore0AuthorTeam() {
229 return isIgnore0AuthorTeam;
230 }
231
232
233
234
235 public void setIgnore0AuthorTeam(boolean isIgnore0AuthorTeam) {
236 this.isIgnore0AuthorTeam = isIgnore0AuthorTeam;
237 }
238
239
240
241
242 public Method getNamerelationshipTypeMethod() {
243 return namerelationshipTypeMethod;
244 }
245
246
247
248
249 public void setNamerelationshipTypeMethod(Method namerelationshipTypeMethod) {
250 this.namerelationshipTypeMethod = namerelationshipTypeMethod;
251 }
252
253
254
255
256 public BerlinModelTaxonImport.PublishMarkerChooser getTaxonPublishMarker() {
257 return taxonPublishMarker;
258 }
259
260
261
262
263 public void setTaxonPublishMarker(
264 BerlinModelTaxonImport.PublishMarkerChooser taxonPublishMarker) {
265 this.taxonPublishMarker = taxonPublishMarker;
266 }
267
268
269
270
271
272
273 public Method getUuidForDefTermMethod() {
274 return uuidForDefTermMethod;
275 }
276
277
278
279
280 public void setUuidForDefTermMethod(Method uuidForDefTermMethod) {
281 this.uuidForDefTermMethod = uuidForDefTermMethod;
282 }
283
284
285
286
287 public Method getUserTransformationMethod() {
288 return userTransformationMethod;
289 }
290
291
292
293
294 public void setUserTransformationMethod(Method userTransformationMethod) {
295 this.userTransformationMethod = userTransformationMethod;
296 }
297
298
299
300
301
302
303 public Method getNameTypeDesignationStatusMethod() {
304 return nameTypeDesignationStatusMethod;
305 }
306
307
308
309
310
311 public void setNameTypeDesignationStatusMethod(
312 Method nameTypeDesignationStatusMethod) {
313 this.nameTypeDesignationStatusMethod = nameTypeDesignationStatusMethod;
314 }
315
316
317
318
319 public int getRecordsPerTransaction() {
320 return recordsPerTransaction;
321 }
322
323
324
325
326 public void setRecordsPerTransaction(int recordsPerTransaction) {
327 this.recordsPerTransaction = recordsPerTransaction;
328 }
329
330
331 public boolean isDoCommonNames() {
332 return doCommonNames;
333 }
334
335
336
337
338
339 public void setDoCommonNames(boolean doCommonNames) {
340 this.doCommonNames = doCommonNames;
341
342 }
343
344
345
346
347 }