(no commit message)
authorKatja Luther <k.luther@bgbm.org>
Mon, 13 Apr 2015 11:46:59 +0000 (11:46 +0000)
committerKatja Luther <k.luther@bgbm.org>
Mon, 13 Apr 2015 11:46:59 +0000 (11:46 +0000)
.gitattributes
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExport.java [new file with mode: 0644]
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExportBase.java [new file with mode: 0644]
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExportConfigurator.java [new file with mode: 0644]
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExportState.java [new file with mode: 0644]
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/NameRecord.java [new file with mode: 0644]

index f1930e4e0ecd1b9d03d47133946531e99da59da0..a490e748cf7589746cc23b0870d01dacfd81c30e 100644 (file)
@@ -260,6 +260,11 @@ cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/mapping/out/IdMapper.java -te
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/mapping/out/IndexCounter.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/mapping/out/MethodMapper.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/mapping/out/ObjectChangeMapper.java -text
+cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExport.java -text
+cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExportBase.java -text
+cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExportConfigurator.java -text
+cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExportState.java -text
+cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/NameRecord.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/redlist/demo/CsvDemoBase.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/redlist/demo/CsvDemoExport.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/redlist/demo/CsvDemoExportConfigurator.java -text
diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExport.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExport.java
new file mode 100644 (file)
index 0000000..140c3a2
--- /dev/null
@@ -0,0 +1,5 @@
+package eu.etaxonomy.cdm.io.csv.caryophyllales.out;\r
+\r
+public class CsvNameExport extends CsvNameExportBase {\r
+\r
+}\r
diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExportBase.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExportBase.java
new file mode 100644 (file)
index 0000000..8bbbb8c
--- /dev/null
@@ -0,0 +1,91 @@
+package eu.etaxonomy.cdm.io.csv.caryophyllales.out;\r
+\r
+import java.io.ByteArrayOutputStream;\r
+import java.io.PrintWriter;\r
+import java.net.URI;\r
+import java.util.Collections;\r
+import java.util.Comparator;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Set;\r
+\r
+import org.apache.commons.lang.StringUtils;\r
+import org.springframework.transaction.TransactionStatus;\r
+\r
+import eu.etaxonomy.cdm.io.common.CdmExportBase;\r
+import eu.etaxonomy.cdm.io.common.ICdmExport;\r
+import eu.etaxonomy.cdm.io.common.mapping.out.IExportTransformer;\r
+import eu.etaxonomy.cdm.io.csv.redlist.demo.CsvDemoBase;\r
+import eu.etaxonomy.cdm.io.csv.redlist.demo.CsvDemoExportConfigurator;\r
+import eu.etaxonomy.cdm.io.csv.redlist.demo.CsvDemoExportState;\r
+import eu.etaxonomy.cdm.io.csv.redlist.out.CsvExportBaseRedlist;\r
+import eu.etaxonomy.cdm.io.csv.redlist.out.CsvTaxExportConfiguratorRedlist;\r
+import eu.etaxonomy.cdm.io.csv.redlist.out.CsvTaxExportStateRedlist;\r
+import eu.etaxonomy.cdm.io.csv.redlist.out.CsvTaxRecordRedlist;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.location.NamedArea;\r
+import eu.etaxonomy.cdm.model.name.NonViralName;\r
+import eu.etaxonomy.cdm.model.taxon.Classification;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+\r
+public class CsvNameExportBase extends CdmExportBase<CsvNameExportConfigurator, CsvNameExportState, IExportTransformer> implements ICdmExport<CsvNameExportConfigurator, CsvNameExportState>{\r
+\r
+       public CsvNameExportBase() {\r
+               super();\r
+               this.ioName = this.getClass().getSimpleName();\r
+       }\r
+\r
+       \r
+       @Override\r
+       protected void doInvoke(CsvNameExportState state) {\r
+               CsvNameExportConfigurator config = state.getConfig();\r
+               TransactionStatus txStatus = startTransaction(true);\r
+               \r
+               PrintWriter writer = null;\r
+               ByteArrayOutputStream byteArrayOutputStream;\r
+               \r
+                       byteArrayOutputStream = config.getByteOutputStream();\r
+                       writer = new PrintWriter(byteArrayOutputStream); \r
+       \r
+                       List<HashMap<String, String>> result = getNameService().getNameRecords();\r
+                       NameRecord nameRecord;\r
+                       int count = 0;\r
+                       boolean isFirst = true;\r
+                       for (HashMap<String,String> record:result){\r
+                               if (count > 0){\r
+                                       isFirst = false;\r
+                               }\r
+                               nameRecord = new NameRecord(record, isFirst);\r
+                               nameRecord.print(writer, config);\r
+                                       \r
+                       }\r
+                       writer.flush();\r
+               \r
+                       writer.close();\r
+                       \r
+               \r
+               commitTransaction(txStatus);\r
+               return;\r
+\r
+\r
+       }\r
+\r
+       \r
+\r
+       @Override\r
+       protected boolean doCheck(CsvNameExportState state) {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+\r
+       @Override\r
+       protected boolean isIgnore(CsvNameExportState state) {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+       \r
+       \r
+       \r
+\r
+}\r
diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExportConfigurator.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExportConfigurator.java
new file mode 100644 (file)
index 0000000..ec851f7
--- /dev/null
@@ -0,0 +1,83 @@
+package eu.etaxonomy.cdm.io.csv.caryophyllales.out;\r
+\r
+import java.io.ByteArrayOutputStream;\r
+import java.io.File;\r
+\r
+import eu.etaxonomy.cdm.database.ICdmDataSource;\r
+import eu.etaxonomy.cdm.io.common.XmlExportConfiguratorBase;\r
+import eu.etaxonomy.cdm.io.common.mapping.out.IExportTransformer;\r
+import eu.etaxonomy.cdm.io.csv.redlist.demo.CsvDemoExport;\r
+import eu.etaxonomy.cdm.io.csv.redlist.demo.CsvDemoExportState;\r
+\r
+public class CsvNameExportConfigurator extends XmlExportConfiguratorBase<CsvNameExportState>{\r
+       \r
+       protected CsvNameExportConfigurator(File destination,\r
+                       ICdmDataSource cdmSource, IExportTransformer transformer) {\r
+               super(destination, cdmSource, transformer);\r
+               // TODO Auto-generated constructor stub\r
+       }\r
+       \r
+       public static CsvNameExportConfigurator NewInstance(ICdmDataSource source, File destinationFolder){\r
+               \r
+               return new CsvNameExportConfigurator(destinationFolder,source, null);\r
+               \r
+       }\r
+       \r
+       private ByteArrayOutputStream byteOutputStream;\r
+       \r
+       public ByteArrayOutputStream getByteOutputStream() {\r
+               return byteOutputStream;\r
+       }\r
+\r
+       public void setByteOutputStream(ByteArrayOutputStream byteOutputStream) {\r
+               this.byteOutputStream = byteOutputStream;\r
+       }\r
+\r
+       private String encoding = "UTF-8";\r
+       public String getEncoding() {\r
+               return encoding;\r
+       }\r
+       public void setEncoding(String encoding) {\r
+               this.encoding = encoding;\r
+       }\r
+       public String getLinesTerminatedBy() {\r
+               return linesTerminatedBy;\r
+       }\r
+       public void setLinesTerminatedBy(String linesTerminatedBy) {\r
+               this.linesTerminatedBy = linesTerminatedBy;\r
+       }\r
+       public String getFieldsEnclosedBy() {\r
+               return fieldsEnclosedBy;\r
+       }\r
+       public void setFieldsEnclosedBy(String fieldsEnclosedBy) {\r
+               this.fieldsEnclosedBy = fieldsEnclosedBy;\r
+       }\r
+       public boolean isHasHeaderLines() {\r
+               return hasHeaderLines;\r
+       }\r
+       public void setHasHeaderLines(boolean hasHeaderLines) {\r
+               this.hasHeaderLines = hasHeaderLines;\r
+       }\r
+       public String getFieldsTerminatedBy() {\r
+               return fieldsTerminatedBy;\r
+       }\r
+       public void setFieldsTerminatedBy(String fieldsTerminatedBy) {\r
+               this.fieldsTerminatedBy = fieldsTerminatedBy;\r
+       }\r
+       private String linesTerminatedBy = "\r\n";\r
+       private String fieldsEnclosedBy = "\"";\r
+       private boolean hasHeaderLines = true;\r
+       private String fieldsTerminatedBy=";";\r
+       @Override\r
+       public CsvNameExportState getNewState() {\r
+               return new CsvNameExportState(this);\r
+       }\r
+       @Override\r
+       @SuppressWarnings("unchecked")\r
+       protected void makeIoClassList() {\r
+               ioClassList = new Class[] {\r
+                               CsvNameExportBase.class\r
+               };\r
+       }\r
+\r
+}\r
diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExportState.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExportState.java
new file mode 100644 (file)
index 0000000..922c2a8
--- /dev/null
@@ -0,0 +1,16 @@
+package eu.etaxonomy.cdm.io.csv.caryophyllales.out;\r
+\r
+import eu.etaxonomy.cdm.io.common.XmlExportState;\r
+import eu.etaxonomy.cdm.io.csv.redlist.demo.CsvDemoExportConfigurator;\r
+\r
+public class CsvNameExportState extends XmlExportState<CsvNameExportConfigurator>{\r
+\r
+       \r
+       public CsvNameExportState(CsvNameExportConfigurator config) {\r
+               super(config);\r
+               // TODO Auto-generated constructor stub\r
+       }\r
+       \r
+       \r
+\r
+}\r
diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/NameRecord.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/NameRecord.java
new file mode 100644 (file)
index 0000000..6397a04
--- /dev/null
@@ -0,0 +1,77 @@
+package eu.etaxonomy.cdm.io.csv.caryophyllales.out;\r
+\r
+import java.io.PrintWriter;\r
+import java.util.ArrayList;\r
+import java.util.Arrays;\r
+import java.util.HashMap;\r
+import java.util.Iterator;\r
+import java.util.List;\r
+\r
+import org.apache.commons.lang.StringUtils;\r
+\r
+import eu.etaxonomy.cdm.io.csv.redlist.out.CsvTaxExportConfiguratorRedlist;\r
+\r
+public class NameRecord {\r
+       private HashMap<String,String> record;\r
+       private boolean isFirst;\r
+       \r
+       \r
+       public NameRecord(HashMap<String,String> record, boolean isFirst){\r
+               record = record;\r
+               isFirst = isFirst;\r
+       }\r
+       \r
+\r
+protected void print(PrintWriter writer, CsvNameExportConfigurator config) {\r
+       String strToPrint ="";\r
+       if (isFirst){\r
+               for (String valueName:record.keySet()){\r
+                       strToPrint+=valueName;\r
+               }\r
+               strToPrint.concat(config.getLinesTerminatedBy());\r
+       }\r
+       if (!record.isEmpty() ){\r
+               //Replace quotes by double quotes\r
+               String value ;\r
+               Iterator<String> it = record.values().iterator();\r
+                       while (it.hasNext()){\r
+                               value = it.next();\r
+                               value = value.replace("\"", "\"\"");\r
+                       \r
+                               value = value.replace(config.getLinesTerminatedBy(), "\\r");\r
+                               \r
+                               //replace all line brakes according to best practices: http://code.google.com/p/gbif-ecat/wiki/BestPractices\r
+                               value = value.replace("\r\n", "\\r");\r
+                               value = value.replace("\r", "\\r");\r
+                               value = value.replace("\n", "\\r");\r
+                               \r
+                               strToPrint += config.getFieldsEnclosedBy() + value + config.getFieldsEnclosedBy();\r
+               }\r
+                       strToPrint.concat(config.getLinesTerminatedBy());\r
+                       writer.print(strToPrint);\r
+       }\r
+       \r
+       \r
+}\r
+\r
+\r
+public HashMap<String,String> getRecord() {\r
+       return record;\r
+}\r
+\r
+\r
+public void setRecord(HashMap<String,String> record) {\r
+       this.record = record;\r
+}\r
+\r
+\r
+public boolean isFirst() {\r
+       return isFirst;\r
+}\r
+\r
+\r
+public void setFirst(boolean isFirst) {\r
+       this.isFirst = isFirst;\r
+}\r
+\r
+}\r