package eu.etaxonomy.taxeditor.io;
import java.io.BufferedWriter;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
+import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
import org.apache.log4j.Logger;
import org.eclipse.core.runtime.Assert;
public class ExportManager extends AbstractIOManager<IExportConfigurator> {
private static final Logger logger = Logger.getLogger(ExportManager.class);
-
+ /** Constant <code>DATE_FORMAT_NOW="yyyyMMddHHmm"</code> */
+ public static final String DATE_FORMAT_NOW = "yyyyMMddHHmm";
/**
*
* @param applicationConfiguration
} else if (result.getExportData().getType().equals(ExportResultType.MAP_BYTE_ARRAY)){
Map<String, byte[]> resultMap = (Map<String, byte[]>)data.getExportData();
Set<String> keySet = resultMap.keySet();
- for (String key: keySet){
+ SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
+ Calendar cal = Calendar.getInstance();
+
+
+ File file = new File(urlString+File.separator + "csv_light_" + sdf.format(cal.getTime())+ ".zip");
+ FileOutputStream stream = new FileOutputStream(file);
+ ZipOutputStream zos = new ZipOutputStream(stream);
+ for (String key: keySet){
byte[] fileData = resultMap.get(key);
String fileEnding ="";
if (configurator instanceof OutputModelConfigurator){
fileEnding = ".csv";
}
- File file = new File(urlString+File.separator + key + fileEnding);
- FileOutputStream stream = new FileOutputStream(file);
- Writer out = new BufferedWriter(new OutputStreamWriter(
- stream, "UTF8"));
- stream.write(fileData);
- stream.close();
- }
+
+ ZipEntry entry = new ZipEntry( key + fileEnding);
+ zos.putNextEntry(entry);
+ zos.write(fileData);
+ zos.closeEntry();
+ }
+
+ zos.close();
+
}else{
logger.error("This kind of result data is not supported yet." + result.getExportData().getType().toString());