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
--- /dev/null
+package eu.etaxonomy.cdm.io.csv.caryophyllales.out;\r
+\r
+public class CsvNameExport extends CsvNameExportBase {\r
+\r
+}\r
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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