package foundation.io.engine;
|
|
import java.io.File;
|
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
|
import foundation.dao.DataReader;
|
import foundation.io.FileRepository;
|
import foundation.io.define.DataIO;
|
import foundation.io.define.IOSpeedMode;
|
import foundation.io.object.FileItemAgent;
|
import foundation.io.object.UploadReader;
|
import foundation.token.IUser;
|
|
public class FileProcessor {
|
|
protected static Logger logger;
|
|
private int batchCount;
|
|
private File uploadFile;
|
private IWorkBookReader workBookReader;
|
|
private File downloadFile;
|
private IWorkBookWriter workBookWriter;
|
|
|
static {
|
logger = LogManager.getLogger(FileProcessor.class);
|
}
|
|
public FileProcessor(int batchCount) {
|
this.batchCount = batchCount;
|
}
|
|
public File openUploadFile(DataReader dataReader, IOSpeedMode bigDataMode) throws Exception {
|
UploadReader uploadReader = new UploadReader(dataReader);
|
FileItemAgent fileForm = uploadReader.getFistFileItem();
|
|
if (fileForm == null) {
|
throw new Exception("can not open upload file: no file");
|
}
|
|
IUser user = dataReader.getUser();
|
uploadFile = FileRepository.createImportTempFile(user, fileForm);
|
|
if (!uploadFile.exists()) {
|
throw new Exception("upload file not exists: " + uploadFile);
|
}
|
|
workBookReader = IWorkBookReader.newInstance(uploadFile, bigDataMode, batchCount);
|
|
return uploadFile;
|
}
|
|
public File openDownloadFile(DataReader dataReader, DataIO dataIO, IOSpeedMode bigDataMode) throws Exception {
|
IUser user = dataReader.getUser();
|
|
downloadFile = FileRepository.createExportTempFile(user, dataIO.getTemplateName(), dataIO.getToName());
|
|
if (downloadFile == null || !downloadFile.exists()) {
|
throw new Exception("download file not exists: " + downloadFile);
|
}
|
|
workBookWriter = IWorkBookWriter.newInstance(downloadFile, bigDataMode, batchCount);
|
return downloadFile;
|
}
|
|
public ISheetReader openSheetReader(DataIO dataIO) throws Exception {
|
ISheetReader sheetReader = workBookReader.openSheetReader(dataIO);
|
return sheetReader;
|
}
|
|
public ISheetWriter openSheetWriter(DataIO dataIO) {
|
ISheetWriter sheetWriter = workBookWriter.openSheetWriter(dataIO);
|
return sheetWriter;
|
}
|
|
public void close() {
|
//1.
|
if (workBookReader != null) {
|
workBookReader.close();
|
}
|
|
//2.
|
if (workBookWriter != null && !workBookWriter.close) {
|
workBookWriter.close();
|
}
|
}
|
|
public String getUploadFileName() {
|
return uploadFile.getName();
|
}
|
|
public File getDownloadFile() {
|
return downloadFile;
|
}
|
|
public String getDownloadFileName() {
|
return downloadFile.getName();
|
}
|
|
public void closeReader() {
|
// TODO Auto-generated method stub
|
|
}
|
|
}
|