94494a070caaec2fc92af9776125f5b3ff64cabd
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / csv / redlist / demo / CsvDemoExportConfigurator.java
1 /**
2 * Copyright (C) 2007 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.csv.redlist.demo;
11
12 import java.io.ByteArrayOutputStream;
13 import java.io.File;
14 import java.util.ArrayList;
15 import java.util.HashSet;
16 import java.util.List;
17 import java.util.Set;
18 import java.util.UUID;
19
20 import org.apache.log4j.Logger;
21
22 import eu.etaxonomy.cdm.database.ICdmDataSource;
23 import eu.etaxonomy.cdm.io.common.XmlExportConfiguratorBase;
24 import eu.etaxonomy.cdm.io.common.mapping.out.IExportTransformer;
25 import eu.etaxonomy.cdm.model.description.Feature;
26 import eu.etaxonomy.cdm.model.location.NamedArea;
27
28
29 /**
30 * @author a.oppermann
31 * @created 17.10.2012
32 */
33 public class CsvDemoExportConfigurator extends XmlExportConfiguratorBase<CsvDemoExportState> {
34 @SuppressWarnings("unused")
35 private static final Logger logger = Logger.getLogger(CsvDemoExportConfigurator.class);
36
37 private String encoding = "UTF-8";
38 private String linesTerminatedBy = "\r\n";
39 private String fieldsEnclosedBy = "\"";
40 private boolean hasHeaderLines = true;
41 private String fieldsTerminatedBy=",";
42 private boolean doTaxa = true;
43 private boolean doDistributions = false;
44 private ByteArrayOutputStream baos;
45 private boolean isUseIdWherePossible = false;
46 private boolean includeBasionymsInResourceRelations;
47 private boolean includeMisappliedNamesInResourceRelations;
48 private String defaultBibliographicCitation = null;
49 private List<UUID> featureExclusions = new ArrayList<UUID>();
50 //filter on the classifications to be exported
51 private Set<UUID> classificationUuids = new HashSet<UUID>();
52 private boolean withHigherClassification = false;
53 private String setSeparator = ";";
54
55 private boolean doGeographicalFilter = true;
56 private boolean doDemoExport = false;
57 private boolean doTaxonConceptExport = false;
58
59 //attributes for export
60 private boolean classification;
61 private boolean taxonName;
62 private boolean taxonNameID;
63 private boolean author;
64 private boolean rank;
65 private boolean taxonStatus;
66 private boolean taxonConceptID;
67 private boolean synonyms;
68 private boolean distributions;
69 private boolean redlistFeatures;
70 private boolean acceptedName;
71 private boolean parentID;
72 private boolean externalID;
73 private boolean lastChange;
74
75 private List<CsvDemoRecord> recordList;
76
77
78
79
80 private List<Feature> features;
81 private String classificationTitleCache;
82 private List<NamedArea> areas;
83
84
85 private Integer pageSize;
86
87 private Integer pageNumber;
88
89 private int taxonNodeListSize;
90
91
92 //TODO
93 private static IExportTransformer defaultTransformer = null;
94
95 public static CsvDemoExportConfigurator NewInstance(ICdmDataSource source, File destinationFolder) {
96 return new CsvDemoExportConfigurator(source, destinationFolder);
97
98 }
99
100 @Override
101 @SuppressWarnings("unchecked")
102 protected void makeIoClassList() {
103 ioClassList = new Class[] {
104 CsvDemoExport.class
105 };
106 }
107
108
109 /**
110 * This is function is only to have a shortcut for
111 * a preselection for available fields. One can still
112 * select fields manually.
113 * <p><p>
114 * Only one of the parameter should be true, otherwise you
115 * all fields are set to true and will be exported.
116 * <p><p>
117 * In future this function might be removed.
118 *
119 *
120 * @param doDemoExport
121 * @param doTaxonConceptExport
122 */
123 public void createPreSelectedExport(boolean doDemoExport, boolean doTaxonConceptExport){
124 if(doDemoExport){
125 setDoDemoExport(true);
126 setClassification(true);
127 setTaxonName(true);
128 setTaxonNameID(true);
129 setTaxonStatus(true);
130 setSynonyms(true);
131 setDistributions(true);
132 setRedlistFeatures(true);
133 }else if(doTaxonConceptExport){
134 setDoTaxonConceptExport(true);
135 setTaxonName(true);
136 setAuthor(true);
137 setRank(true);
138 setTaxonConceptID(true);
139 setParentID(true);
140 setExternalID(true);
141 setLastChange(true);
142 }
143 }
144
145
146
147 /**
148 * @param url
149 * @param destination
150 */
151 private CsvDemoExportConfigurator(ICdmDataSource source, File destination) {
152 super(destination, source, defaultTransformer);
153 }
154
155 /* (non-Javadoc)
156 * @see eu.etaxonomy.cdm.io.common.ImportConfiguratorBase#getSource()
157 */
158 @Override
159 public File getDestination() {
160 return super.getDestination();
161 }
162
163 /**
164 * @param file
165 */
166 @Override
167 public void setDestination(File fileName) {
168 super.setDestination(fileName);
169 }
170
171 /* (non-Javadoc)
172 * @see eu.etaxonomy.cdm.io.common.IExportConfigurator#getDestinationNameString()
173 */
174 @Override
175 public String getDestinationNameString() {
176 if (this.getDestination() == null) {
177 return null;
178 } else {
179 return this.getDestination().toString();
180 }
181 }
182
183 /* (non-Javadoc)
184 * @see eu.etaxonomy.cdm.io.common.IExportConfigurator#getNewState()
185 */
186 @Override
187 public CsvDemoExportState getNewState() {
188 return new CsvDemoExportState(this);
189 }
190
191 public boolean isDoTaxa() {
192 return doTaxa;
193 }
194
195 public void setDoTaxa(boolean doTaxa) {
196 this.doTaxa = doTaxa;
197 }
198
199
200 public boolean isDoDistributions() {
201 return doDistributions;
202 }
203
204 public void setDoDistributions(boolean doDistributions) {
205 this.doDistributions = doDistributions;
206 }
207
208 public void setFeatureExclusions(List<UUID> featureExclusions) {
209 this.featureExclusions = featureExclusions;
210 }
211
212 public List<UUID> getFeatureExclusions() {
213 return featureExclusions;
214 }
215
216 public String getEncoding() {
217 return encoding;
218 }
219
220 public void setEncoding(String encoding) {
221 this.encoding = encoding;
222 }
223
224 public String getLinesTerminatedBy() {
225 return linesTerminatedBy;
226 }
227
228 public void setLinesTerminatedBy(String linesTerminatedBy) {
229 this.linesTerminatedBy = linesTerminatedBy;
230 }
231
232 public String getFieldsEnclosedBy() {
233 return fieldsEnclosedBy;
234 }
235
236 public void setFieldsEnclosedBy(String fieldsEnclosedBy) {
237 this.fieldsEnclosedBy = fieldsEnclosedBy;
238 }
239
240 /**
241 * Equals darwin core archive ignoreHeaderLines attribute
242 * @return
243 */
244 public boolean isHasHeaderLines() {
245 return hasHeaderLines;
246 }
247
248 public void setHasHeaderLines(boolean hasHeaderLines) {
249 this.hasHeaderLines = hasHeaderLines;
250 }
251
252 public boolean isIncludeBasionymsInResourceRelations() {
253 return includeBasionymsInResourceRelations;
254 }
255
256 public void setIncludeBasionymsInResourceRelations(boolean includeBasionymsInResourceRelations) {
257 this.includeBasionymsInResourceRelations = includeBasionymsInResourceRelations;
258 }
259
260 public boolean isIncludeMisappliedNamesInResourceRelations() {
261 return includeMisappliedNamesInResourceRelations;
262 }
263
264 public void setIncludeMisappliedNamesInResourceRelations(boolean includeMisappliedNamesInResourceRelations) {
265 this.includeMisappliedNamesInResourceRelations = includeMisappliedNamesInResourceRelations;
266 }
267
268 public boolean isUseIdWherePossible() {
269 return this.isUseIdWherePossible;
270 }
271
272 public void setUseIdWherePossible(boolean isUseIdWherePossible) {
273 this.isUseIdWherePossible = isUseIdWherePossible;
274 }
275
276 public void setDefaultBibliographicCitation(String defaultBibliographicCitation) {
277 this.defaultBibliographicCitation = defaultBibliographicCitation;
278 }
279
280
281 public String getDefaultBibliographicCitation() {
282 return defaultBibliographicCitation;
283 }
284
285 /**
286 * The default value for the taxon.source column. This may be a column linking to a url that provides
287 * data about the given taxon. The id is replaced by a placeholder,
288 * e.g. http://wp6-cichorieae.e-taxonomy.eu/portal/?q=cdm_dataportal/taxon/{id}.
289 * NOTE: This may be replaced in future versions by concrete CDM server implementations.
290 *
291 * @return the taxonSourceDefault
292 */
293
294 public boolean isWithHigherClassification() {
295 return withHigherClassification;
296 }
297
298 public void setWithHigherClassification(boolean withHigherClassification) {
299 this.withHigherClassification = withHigherClassification;
300 }
301
302 /**
303 * @return the setSeparator
304 */
305 public String getSetSeparator() {
306 return setSeparator;
307 }
308
309 /**
310 * @param setSeparator the setSeparator to set
311 */
312 public void setSetSeparator(String setSeparator) {
313 this.setSeparator = setSeparator;
314 }
315
316 public void setFieldsTerminatedBy(String fieldsTerminatedBy) {
317 this.fieldsTerminatedBy = fieldsTerminatedBy;
318 }
319
320 public String getFieldsTerminatedBy() {
321 return fieldsTerminatedBy;
322 }
323
324 public Set<UUID> getClassificationUuids() {
325 return classificationUuids;
326 }
327
328 public void setClassificationUuids(Set<UUID> classificationUuids) {
329 this.classificationUuids = classificationUuids;
330 }
331
332 public ByteArrayOutputStream getByteArrayOutputStream() {
333 return baos;
334 }
335
336 public void setByteArrayOutputStream(ByteArrayOutputStream baos) {
337 this.baos = baos;
338 }
339
340 public void setFeatures(List<Feature> features) {
341 this.features = features;
342
343 }
344
345 public List<Feature> getFeatures() {
346 return features;
347
348 }
349
350 public void setClassificationTitleCache(String classificationTitleCache) {
351 this.classificationTitleCache = classificationTitleCache;
352 }
353
354 public String getClassificationTitleCache() {
355 return classificationTitleCache;
356 }
357
358 /**
359 * @param areas
360 */
361 public void setNamedAreas(List<NamedArea> areas) {
362 // TODO Auto-generated method stub
363 this.areas = areas;
364
365 }
366 public List<NamedArea> getNamedAreas(){
367 return areas;
368 }
369
370 public boolean isDoGeographicalFilter() {
371 return doGeographicalFilter;
372 }
373
374 public void setDoGeographicalFilter(boolean doGeographicalFilter) {
375 this.doGeographicalFilter = doGeographicalFilter;
376 }
377
378 public boolean isDoDemoExport() {
379 return doDemoExport;
380 }
381
382 public void setDoDemoExport(boolean doDemoHeadlines) {
383 this.doDemoExport = doDemoHeadlines;
384 }
385
386
387 public boolean isDoTaxonConceptExport() {
388 return doTaxonConceptExport;
389 }
390
391 public void setDoTaxonConceptExport(boolean doTaxonConceptExport) {
392 this.doTaxonConceptExport = doTaxonConceptExport;
393 }
394
395 public boolean isAuthor() {
396 return author;
397 }
398
399 public void setAuthor(boolean author) {
400 this.author = author;
401 }
402
403 public boolean isRank() {
404 return rank;
405 }
406
407 public void setRank(boolean rank) {
408 this.rank = rank;
409 }
410
411 public boolean isTaxonConceptID() {
412 return taxonConceptID;
413 }
414
415 public void setTaxonConceptID(boolean taxonConceptID) {
416 this.taxonConceptID = taxonConceptID;
417 }
418
419 public boolean isAcceptedName() {
420 return acceptedName;
421 }
422
423 public void setAcceptedName(boolean acceptedName) {
424 this.acceptedName = acceptedName;
425 }
426 public boolean isClassification() {
427 return classification;
428 }
429
430 public void setClassification(boolean classification) {
431 this.classification = classification;
432 }
433
434 public boolean isTaxonName() {
435 return taxonName;
436 }
437
438 public void setTaxonName(boolean taxonName) {
439 this.taxonName = taxonName;
440 }
441
442 public boolean isTaxonNameID() {
443 return taxonNameID;
444 }
445
446 public void setTaxonNameID(boolean taxonNameID) {
447 this.taxonNameID = taxonNameID;
448 }
449
450 public boolean isTaxonStatus() {
451 return taxonStatus;
452 }
453
454 public void setTaxonStatus(boolean taxonStatus) {
455 this.taxonStatus = taxonStatus;
456 }
457
458 public boolean isSynonyms() {
459 return synonyms;
460 }
461
462 public void setSynonyms(boolean synonyms) {
463 this.synonyms = synonyms;
464 }
465
466 public boolean isDistributions() {
467 return distributions;
468 }
469
470 public void setDistributions(boolean distributions) {
471 this.distributions = distributions;
472 }
473
474 public boolean isRedlistFeatures() {
475 return redlistFeatures;
476 }
477
478 public void setRedlistFeatures(boolean redlistFeatures) {
479 this.redlistFeatures = redlistFeatures;
480 }
481
482 public boolean isParentID() {
483 return parentID;
484 }
485
486 public void setParentID(boolean parentID) {
487 this.parentID = parentID;
488 }
489
490 public boolean isLastChange() {
491 return lastChange;
492 }
493
494 public void setLastChange(boolean lastChange) {
495 this.lastChange = lastChange;
496 }
497
498 public boolean isExternalID() {
499 return externalID;
500 }
501
502 public void setExternalID(boolean externalID) {
503 this.externalID = externalID;
504 }
505 public List<CsvDemoRecord> getRecordList() {
506 return recordList;
507 }
508 public void setRecordList(List<CsvDemoRecord> recordList) {
509 this.recordList = recordList;
510 }
511
512 public Integer getPageSize() {
513 return pageSize;
514 }
515 public void setPageSize(Integer pageSize) {
516 this.pageSize = pageSize;
517 }
518
519 public Integer getPageNumber() {
520 return pageNumber;
521 }
522
523 public void setPageNumber(Integer pageNumber) {
524 this.pageNumber = pageNumber;
525 }
526
527
528 public int getTaxonNodeListSize() {
529 return taxonNodeListSize;
530 }
531
532 public void setTaxonNodeListSize(int size) {
533 this.taxonNodeListSize = size;
534
535 }
536
537 }