package br.com.cafebinario.file.implementation;
import java.io.File;
import java.io.IOException;
import java.sql.ResultSetMetaData;
import java.util.Locale;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import org.apache.log4j.Logger;
import br.com.cafebinario.exception.IntegrationArchiveException;
import br.com.cafebinario.file.interfaces.IIntegrationArchive;
import br.com.cafebinario.integration.EventWrite;
import br.com.cafebinario.integration.IIntegracao;
import br.com.cafebinario.properties.AppProperties;
import br.com.cafebinario.transport.GenericVO;
import com.itextpdf.text.DocumentException;
public class XlsIntegrationArchive implements IIntegrationArchive {
private static Logger LOG = Logger.getLogger(PdfIntegrationArchive.class);
private EventWrite<WritableWorkbook> callerEvent = null;
private String fileName = "";
private IIntegracao integracao = null;
protected AppProperties properties = AppProperties.instanceOf();
private WritableWorkbook workbook = null;
public XlsIntegrationArchive() {
}
private void addContent(WritableWorkbook document) throws DocumentException {
callerEvent.writeDocument(document);
}
public void discharge() throws IntegrationArchiveException {
}
public void finalize() {
System.out.println("Close XLS Document");
try {
workbook.write();
workbook.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
public EventWrite<WritableWorkbook> getCallerEvent() {
return callerEvent;
}
public String getFileName() {
return fileName;
}
public String initialize(IIntegracao integracao) {
this.integracao = integracao;
String fileName = properties.getProperty("LocalOutputDirectory")
+ integracao.getFileName();
LOG.debug("OUTPUT_FILE=" + fileName);
File file = new File(fileName);
WorkbookSettings wbSettings = new WorkbookSettings();
wbSettings.setLocale(new Locale("pt", "BR"));
try {
workbook = Workbook.createWorkbook(file, wbSettings);
} catch (IOException e) {
e.printStackTrace();
}
return fileName;
}
public String initializeOrder(IIntegracao integracao) {
this.integracao = integracao;
return "";
}
public void setCallerEvent(EventWrite<WritableWorkbook> callerEvent) {
this.callerEvent = callerEvent;
}
public String white() throws IntegrationArchiveException {
try {
addContent(workbook);
} catch (DocumentException e) {
e.printStackTrace();
}
return properties.getProperty("LocalOutputDirectory")
+ integracao.getFileName();
}
public String write() throws IntegrationArchiveException {
return null;
}
public void write(GenericVO vo, int collNumber)
throws IntegrationArchiveException, IOException {
}
public String writeRecord(GenericVO vo, int collNumber, ResultSetMetaData mt)
throws IntegrationArchiveException {
return null;
}
}