2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.io
.csv
.redlist
.demo
;
12 import java
.io
.ByteArrayOutputStream
;
14 import java
.util
.ArrayList
;
15 import java
.util
.HashSet
;
16 import java
.util
.List
;
18 import java
.util
.UUID
;
20 import org
.apache
.log4j
.Logger
;
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
;
33 public class CsvDemoExportConfigurator
extends XmlExportConfiguratorBase
<CsvDemoExportState
> {
34 @SuppressWarnings("unused")
35 private static final Logger logger
= Logger
.getLogger(CsvDemoExportConfigurator
.class);
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
= ";";
55 private boolean doGeographicalFilter
= true;
56 private boolean doDemoExport
= false;
57 private boolean doTaxonConceptExport
= false;
59 //attributes for export
60 private boolean classification
;
61 private boolean taxonName
;
62 private boolean taxonNameID
;
63 private boolean author
;
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
;
75 private List
<CsvDemoRecord
> recordList
;
80 private List
<Feature
> features
;
81 private String classificationTitleCache
;
82 private List
<NamedArea
> areas
;
85 private Integer pageSize
;
87 private Integer pageNumber
;
89 private int taxonNodeListSize
;
93 private static IExportTransformer defaultTransformer
= null;
95 public static CsvDemoExportConfigurator
NewInstance(ICdmDataSource source
, File destinationFolder
) {
96 return new CsvDemoExportConfigurator(source
, destinationFolder
);
101 @SuppressWarnings("unchecked")
102 protected void makeIoClassList() {
103 ioClassList
= new Class
[] {
110 * This is function is only to have a shortcut for
111 * a preselection for available fields. One can still
112 * select fields manually.
114 * Only one of the parameter should be true, otherwise you
115 * all fields are set to true and will be exported.
117 * In future this function might be removed.
120 * @param doDemoExport
121 * @param doTaxonConceptExport
123 public void createPreSelectedExport(boolean doDemoExport
, boolean doTaxonConceptExport
){
125 setDoDemoExport(true);
126 setClassification(true);
128 setTaxonNameID(true);
129 setTaxonStatus(true);
131 setDistributions(true);
132 setRedlistFeatures(true);
133 }else if(doTaxonConceptExport
){
134 setDoTaxonConceptExport(true);
138 setTaxonConceptID(true);
151 private CsvDemoExportConfigurator(ICdmDataSource source
, File destination
) {
152 super(destination
, source
, defaultTransformer
);
156 * @see eu.etaxonomy.cdm.io.common.ImportConfiguratorBase#getSource()
159 public File
getDestination() {
160 return super.getDestination();
167 public void setDestination(File fileName
) {
168 super.setDestination(fileName
);
172 * @see eu.etaxonomy.cdm.io.common.IExportConfigurator#getDestinationNameString()
175 public String
getDestinationNameString() {
176 if (this.getDestination() == null) {
179 return this.getDestination().toString();
184 * @see eu.etaxonomy.cdm.io.common.IExportConfigurator#getNewState()
187 public CsvDemoExportState
getNewState() {
188 return new CsvDemoExportState(this);
191 public boolean isDoTaxa() {
195 public void setDoTaxa(boolean doTaxa
) {
196 this.doTaxa
= doTaxa
;
200 public boolean isDoDistributions() {
201 return doDistributions
;
204 public void setDoDistributions(boolean doDistributions
) {
205 this.doDistributions
= doDistributions
;
208 public void setFeatureExclusions(List
<UUID
> featureExclusions
) {
209 this.featureExclusions
= featureExclusions
;
212 public List
<UUID
> getFeatureExclusions() {
213 return featureExclusions
;
216 public String
getEncoding() {
220 public void setEncoding(String encoding
) {
221 this.encoding
= encoding
;
224 public String
getLinesTerminatedBy() {
225 return linesTerminatedBy
;
228 public void setLinesTerminatedBy(String linesTerminatedBy
) {
229 this.linesTerminatedBy
= linesTerminatedBy
;
232 public String
getFieldsEnclosedBy() {
233 return fieldsEnclosedBy
;
236 public void setFieldsEnclosedBy(String fieldsEnclosedBy
) {
237 this.fieldsEnclosedBy
= fieldsEnclosedBy
;
241 * Equals darwin core archive ignoreHeaderLines attribute
244 public boolean isHasHeaderLines() {
245 return hasHeaderLines
;
248 public void setHasHeaderLines(boolean hasHeaderLines
) {
249 this.hasHeaderLines
= hasHeaderLines
;
252 public boolean isIncludeBasionymsInResourceRelations() {
253 return includeBasionymsInResourceRelations
;
256 public void setIncludeBasionymsInResourceRelations(boolean includeBasionymsInResourceRelations
) {
257 this.includeBasionymsInResourceRelations
= includeBasionymsInResourceRelations
;
260 public boolean isIncludeMisappliedNamesInResourceRelations() {
261 return includeMisappliedNamesInResourceRelations
;
264 public void setIncludeMisappliedNamesInResourceRelations(boolean includeMisappliedNamesInResourceRelations
) {
265 this.includeMisappliedNamesInResourceRelations
= includeMisappliedNamesInResourceRelations
;
268 public boolean isUseIdWherePossible() {
269 return this.isUseIdWherePossible
;
272 public void setUseIdWherePossible(boolean isUseIdWherePossible
) {
273 this.isUseIdWherePossible
= isUseIdWherePossible
;
276 public void setDefaultBibliographicCitation(String defaultBibliographicCitation
) {
277 this.defaultBibliographicCitation
= defaultBibliographicCitation
;
281 public String
getDefaultBibliographicCitation() {
282 return defaultBibliographicCitation
;
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.
291 * @return the taxonSourceDefault
294 public boolean isWithHigherClassification() {
295 return withHigherClassification
;
298 public void setWithHigherClassification(boolean withHigherClassification
) {
299 this.withHigherClassification
= withHigherClassification
;
303 * @return the setSeparator
305 public String
getSetSeparator() {
310 * @param setSeparator the setSeparator to set
312 public void setSetSeparator(String setSeparator
) {
313 this.setSeparator
= setSeparator
;
316 public void setFieldsTerminatedBy(String fieldsTerminatedBy
) {
317 this.fieldsTerminatedBy
= fieldsTerminatedBy
;
320 public String
getFieldsTerminatedBy() {
321 return fieldsTerminatedBy
;
324 public Set
<UUID
> getClassificationUuids() {
325 return classificationUuids
;
328 public void setClassificationUuids(Set
<UUID
> classificationUuids
) {
329 this.classificationUuids
= classificationUuids
;
332 public ByteArrayOutputStream
getByteArrayOutputStream() {
336 public void setByteArrayOutputStream(ByteArrayOutputStream baos
) {
340 public void setFeatures(List
<Feature
> features
) {
341 this.features
= features
;
345 public List
<Feature
> getFeatures() {
350 public void setClassificationTitleCache(String classificationTitleCache
) {
351 this.classificationTitleCache
= classificationTitleCache
;
354 public String
getClassificationTitleCache() {
355 return classificationTitleCache
;
361 public void setNamedAreas(List
<NamedArea
> areas
) {
362 // TODO Auto-generated method stub
366 public List
<NamedArea
> getNamedAreas(){
370 public boolean isDoGeographicalFilter() {
371 return doGeographicalFilter
;
374 public void setDoGeographicalFilter(boolean doGeographicalFilter
) {
375 this.doGeographicalFilter
= doGeographicalFilter
;
378 public boolean isDoDemoExport() {
382 public void setDoDemoExport(boolean doDemoHeadlines
) {
383 this.doDemoExport
= doDemoHeadlines
;
387 public boolean isDoTaxonConceptExport() {
388 return doTaxonConceptExport
;
391 public void setDoTaxonConceptExport(boolean doTaxonConceptExport
) {
392 this.doTaxonConceptExport
= doTaxonConceptExport
;
395 public boolean isAuthor() {
399 public void setAuthor(boolean author
) {
400 this.author
= author
;
403 public boolean isRank() {
407 public void setRank(boolean rank
) {
411 public boolean isTaxonConceptID() {
412 return taxonConceptID
;
415 public void setTaxonConceptID(boolean taxonConceptID
) {
416 this.taxonConceptID
= taxonConceptID
;
419 public boolean isAcceptedName() {
423 public void setAcceptedName(boolean acceptedName
) {
424 this.acceptedName
= acceptedName
;
426 public boolean isClassification() {
427 return classification
;
430 public void setClassification(boolean classification
) {
431 this.classification
= classification
;
434 public boolean isTaxonName() {
438 public void setTaxonName(boolean taxonName
) {
439 this.taxonName
= taxonName
;
442 public boolean isTaxonNameID() {
446 public void setTaxonNameID(boolean taxonNameID
) {
447 this.taxonNameID
= taxonNameID
;
450 public boolean isTaxonStatus() {
454 public void setTaxonStatus(boolean taxonStatus
) {
455 this.taxonStatus
= taxonStatus
;
458 public boolean isSynonyms() {
462 public void setSynonyms(boolean synonyms
) {
463 this.synonyms
= synonyms
;
466 public boolean isDistributions() {
467 return distributions
;
470 public void setDistributions(boolean distributions
) {
471 this.distributions
= distributions
;
474 public boolean isRedlistFeatures() {
475 return redlistFeatures
;
478 public void setRedlistFeatures(boolean redlistFeatures
) {
479 this.redlistFeatures
= redlistFeatures
;
482 public boolean isParentID() {
486 public void setParentID(boolean parentID
) {
487 this.parentID
= parentID
;
490 public boolean isLastChange() {
494 public void setLastChange(boolean lastChange
) {
495 this.lastChange
= lastChange
;
498 public boolean isExternalID() {
502 public void setExternalID(boolean externalID
) {
503 this.externalID
= externalID
;
505 public List
<CsvDemoRecord
> getRecordList() {
508 public void setRecordList(List
<CsvDemoRecord
> recordList
) {
509 this.recordList
= recordList
;
512 public Integer
getPageSize() {
515 public void setPageSize(Integer pageSize
) {
516 this.pageSize
= pageSize
;
519 public Integer
getPageNumber() {
523 public void setPageNumber(Integer pageNumber
) {
524 this.pageNumber
= pageNumber
;
528 public int getTaxonNodeListSize() {
529 return taxonNodeListSize
;
532 public void setTaxonNodeListSize(int size
) {
533 this.taxonNodeListSize
= size
;