cleaned unused imports
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / csv / redlist / demo / CsvDemoRecord.java
1 // $Id$
2 /**
3 * Copyright (C) 2009 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10 package eu.etaxonomy.cdm.io.csv.redlist.demo;
11
12 import java.io.PrintWriter;
13 import java.net.URISyntaxException;
14 import java.util.ArrayList;
15 import java.util.List;
16
17 import org.apache.log4j.Logger;
18
19 import eu.etaxonomy.cdm.io.dwca.TermUri;
20 import eu.etaxonomy.cdm.model.description.Feature;
21 import eu.etaxonomy.cdm.model.taxon.Classification;
22
23 /**
24 * @author a.oppermann
25 * @date 18.10.2012
26 *
27 */
28 public class CsvDemoRecord extends CsvDemoRecordBase{
29
30 @SuppressWarnings("unused")
31 private static final Logger logger = Logger.getLogger(CsvDemoRecord.class);
32
33 private String scientificNameId;
34 private String scientificName;
35 private String taxonomicStatus;
36 private CsvDemoId datasetId;
37 private String taxonConceptID;
38 private String datasetName;
39 private ArrayList<String> synonyms;
40 private String threadStatus;
41 private ArrayList<String> countryCodes;
42 private ArrayList<String> headlines;
43 private boolean isHeadLinePrinted;
44 private List<Feature> features;
45 private List<List<String>> featuresCells;
46 private CsvDemoExportConfigurator config;
47
48 private String authorshipCache;
49
50 private String rank;
51
52 private String parentUuid;
53
54 private String lastUpdated;
55
56 private String externalID;
57
58 /**
59 *
60 * @param metaDataRecord
61 * @param config
62 */
63 public CsvDemoRecord(CsvDemoMetaDataRecord metaDataRecord, CsvDemoExportConfigurator config){
64 super(metaDataRecord, config);
65 this.config = config;
66 datasetId = new CsvDemoId(config);
67 }
68
69 /* (non-Javadoc)
70 * @see eu.etaxonomy.cdm.io.dwca.out.DwcaRecordBase#registerKnownFields()
71 */
72 protected void registerKnownFields(){
73 try {
74 addKnownField(TermUri.DWC_SCIENTIFIC_NAME);
75 addKnownField(TermUri.DWC_TAXONOMIC_STATUS);
76 addKnownField(TermUri.DWC_DATASET_NAME);
77 addKnownField("countryCode", "http://rs.tdwg.org/dwc/terms/countryCode");
78 } catch (URISyntaxException e) {
79 throw new RuntimeException(e);
80 }
81 }
82
83 public void write(PrintWriter writer) {
84 if(isHeadLinePrinted()){
85 printHeadline(writer, setHeadlines(), TermUri.DWC_DATASET_NAME);
86 isHeadLinePrinted=false;
87 }
88 if(config.isClassification()){
89 print(datasetName, writer, IS_FIRST, TermUri.DWC_DATASET_NAME);
90 }
91 if(config.isDoTaxonConceptExport()){
92 if(config.isTaxonName()){
93 print(scientificName, writer, IS_FIRST, TermUri.DWC_SCIENTIFIC_NAME);
94 }
95 }else{
96 if(config.isTaxonName()){
97 print(scientificName, writer, IS_NOT_FIRST, TermUri.DWC_SCIENTIFIC_NAME);
98 }
99 }
100 if(config.isTaxonNameID()){
101 print(scientificNameId, writer, IS_NOT_FIRST, TermUri.DWC_DATASET_ID);
102 }
103 if(config.isAuthor()){
104 print(authorshipCache, writer, IS_NOT_FIRST, TermUri.DC_CREATOR);
105 }
106 if(config.isRank()){
107 print(rank, writer, IS_NOT_FIRST, TermUri.DWC_TAXON_RANK);
108 }
109 if(config.isTaxonConceptID()){
110 print(taxonConceptID, writer, IS_NOT_FIRST, TermUri.DWC_TAXON_CONCEPT_ID);
111 }
112 if(config.isTaxonStatus()){
113 print(taxonomicStatus, writer, IS_NOT_FIRST, TermUri.DWC_TAXONOMIC_STATUS);
114 }
115 if(config.isAcceptedName()){
116 //TODO print accepted Name
117 }
118 if(config.isParentID()){
119 print(parentUuid, writer, IS_NOT_FIRST, TermUri.DWC_PARENT_NAME_USAGE_ID);
120 }
121 if(config.isSynonyms()){
122 print(synonyms, TermUri.DWC_SCIENTIFIC_NAME, writer);
123 }
124 if(config.isDistributions()){
125 print(countryCodes, TermUri.DWC_COUNTRY_CODE, writer);
126 }
127 if(config.isRedlistFeatures()){
128 if(features != null ||featuresCells != null || !featuresCells.isEmpty()){
129 for(List<String> featureList : featuresCells) {
130 print((ArrayList<String>)featureList, TermUri.DWC_LIFESTAGE, writer);
131 }
132 }
133 }
134 if(config.isExternalID()){
135 print(externalID, writer, IS_NOT_FIRST,TermUri.DWC_ORIGINAL_NAME_USAGE_ID);
136 }
137 if(config.isLastChange()){
138 print(lastUpdated, writer, IS_NOT_FIRST,TermUri.DC_MODIFIED);
139 }
140 writer.println();
141 }
142
143
144 //--------------Getter-Setter-Methods------------------//
145
146 public String getDatasetName() {
147 return datasetName;
148 }
149 public void setDatasetName(String datasetName) {
150 this.datasetName = datasetName;
151 }
152 public String getScientificName() {
153 return scientificName;
154 }
155 public void setScientificName(String scientificName) {
156 this.scientificName = scientificName;
157 }
158 public String getTaxonomicStatus() {
159 return taxonomicStatus;
160 }
161 public void setTaxonomicStatus(String taxonomicStatus) {
162 this.taxonomicStatus = taxonomicStatus;
163 }
164 public String getDatasetId() {
165 return datasetId.getId();
166 }
167 public void setDatasetId(Classification classification) {
168 this.datasetId.setId(classification);
169 }
170 public void setSynonyms(ArrayList<String> synonyms){
171 this.synonyms = synonyms;
172 }
173 public ArrayList<String> getSynonyms(){
174 return synonyms;
175 }
176 public String getThreadStatus() {
177 return threadStatus;
178 }
179 public void setThreadStatus(String threadStatus) {
180 this.threadStatus = threadStatus;
181 }
182
183 public void setCountryCode(ArrayList<String> countryCodes) {
184 this.countryCodes = countryCodes;
185 }
186
187 //FIXME: hard coded header lines
188 private ArrayList<String> setHeadlines(){
189 // if(config.isDoDemoExport()){
190 headlines = new ArrayList<String>();
191
192 if(config.isClassification()){
193 headlines.add("Classification");
194 }
195 if(config.isTaxonName()){
196 headlines.add("Wissenschaftlicher Name");
197 }
198 if(config.isTaxonNameID()){
199 headlines.add("Taxon ID");
200 }
201 if(config.isAuthor()){
202 headlines.add("Autor");
203 }
204 if(config.isRank()){
205 headlines.add("Rang");
206 }
207 if(config.isTaxonStatus()){
208 headlines.add("Taxon Status");
209 }
210 if(config.isAcceptedName()){
211 headlines.add("Akzeptierter Name");
212 }
213 if(config.isTaxonConceptID()){
214 headlines.add("Taxon Konzept ID");
215 }
216 if(config.isParentID()){
217 headlines.add("Parent ID");
218 }
219 if(config.isSynonyms()){
220 headlines.add("Synonym");
221 }
222 if(config.isDistributions()){
223 headlines.add("Distribution");
224 }
225 if(features != null){
226 if(!features.isEmpty()){
227 for(Feature f : features) {
228 headlines.add(f.getLabel());
229 }
230 }
231 }
232 if(config.isExternalID()){
233 headlines.add("External ID");
234 }
235 if(config.isLastChange()){
236 headlines.add("Letztes Update");
237 }
238 // }else if(config.isDoTaxonConceptExport()){
239 // headlines = new ArrayList<String>();
240 // Collections.addAll(headlines, "Taxon Name UUID","Taxon Name","Author","Rank","Taxon Status","Accepted Name", "Taxon Concept ID", "Parent ID", "Last Change");
241 // }
242 return headlines;
243 }
244
245 public boolean isHeadLinePrinted() {
246 return isHeadLinePrinted;
247 }
248
249 public void setHeadLinePrinted(boolean isHeadLinePrinted) {
250 this.isHeadLinePrinted = isHeadLinePrinted;
251 }
252
253 public void setScientificNameId(String scientificNameId) {
254 this.scientificNameId = scientificNameId;
255 }
256
257 public void setPrintFeatures(List<Feature> features) {
258 this.features = features;
259
260 }
261
262 public void setFeatures(List<List<String>> featureCells) {
263 this.featuresCells = featureCells;
264
265 }
266
267 public void setAuthorName(String authorshipCache) {
268 this.authorshipCache = authorshipCache;
269
270 }
271
272 public void setRank(String rank) {
273 this.rank = rank;
274 }
275
276 public void setParentUUID(String parentUuid) {
277 this.parentUuid = parentUuid;
278
279 }
280
281 public void setLastChange(String lastUpdated) {
282 this.lastUpdated = lastUpdated;
283 }
284
285 public void setTaxonConceptID(String taxonConceptID) {
286 this.taxonConceptID = taxonConceptID;
287 }
288
289 public void setExternalID(String externalID) {
290 this.externalID = externalID;
291 }
292 }