package frame.file;
|
|
import java.util.List;
|
|
import frame.data.Entity;
|
import frame.data.meta.EntityMeta;
|
import frame.expression.VariantContext;
|
import frame.file.office.FileIOTypeCode;
|
import frame.file.office.IOMapping;
|
import frame.file.office.IOMappingItemRuntime;
|
import frame.file.office.IOMappingRuntime;
|
import frame.file.office.IOProcessor;
|
import frame.util.Util;
|
|
public class FileIOItem extends IOProcessor implements IFileload{
|
|
private String id;
|
private String fromName;
|
private String toName;
|
private String typeCode;
|
private String mappingId;
|
private boolean distinctSelect;
|
private boolean standardMove;
|
private String[] filterFieldValues;
|
private String[] keyFieldPairs;
|
private AppendMode appendMode;
|
private DeleteMode deleteMode;
|
private Direction direction;
|
private int fromRowNo;
|
private int toRowNo;
|
private int loglevel;
|
|
private EntityMeta fromMeta;
|
private EntityMeta toMeta;
|
private IOMapping mapping;
|
private IOMappingRuntime mappingRuntime;
|
private IFileContext context;
|
|
public FileIOItem() {
|
mapping = new IOMapping();
|
}
|
|
|
@Override
|
public IFileContext createContext(UploadResult result) {
|
context = new FileIOContext(this);
|
context.addParameters(result.getParameterProvider());
|
return context;
|
}
|
|
|
@Override
|
public void initLoad(Entity entity) {
|
//TODO load
|
}
|
|
public static String extractSheetName(String value) {
|
if (Util.isEmptyStr(value)) {
|
return "Sheet1";
|
}
|
|
int begin = value.indexOf("[");
|
|
if (begin < 0) {
|
return "Sheet1";
|
}
|
|
int end = value.indexOf("]", begin);
|
|
if (end < 0) {
|
return "Sheet1";
|
}
|
|
return value.substring(begin + 1, end - begin - 1);
|
}
|
|
public static String extractFileName(String value) {
|
if (Util.isEmptyStr(value)) {
|
return null;
|
}
|
|
int end = value.indexOf("[");
|
|
if (end < 0) {
|
return value;
|
}
|
|
return value.substring(0, end - 1);
|
}
|
|
public boolean existsFilterFieldValues() {
|
if (filterFieldValues == null) {
|
return false;
|
}
|
|
return filterFieldValues.length > 0;
|
}
|
|
public void createTableMeta() throws Exception {
|
if (FileIOTypeCode.Import.equals(FileIOTypeCode.parse(typeCode))) {
|
toMeta = EntityMeta.getInstance(toName);
|
}
|
else if (FileIOTypeCode.Db.equals(FileIOTypeCode.parse(typeCode))) {
|
fromMeta = EntityMeta.getInstance(fromName);
|
toMeta = EntityMeta.getInstance(toName);
|
}
|
else if (FileIOTypeCode.Output.equals(FileIOTypeCode.parse(typeCode))) {
|
fromMeta = EntityMeta.getInstance(fromName);
|
}
|
}
|
|
//getter
|
public String getId() {
|
return id;
|
}
|
|
|
public String getFromName() {
|
return fromName;
|
}
|
|
|
public String getToName() {
|
return toName;
|
}
|
|
|
public String getTypeCode() {
|
return typeCode;
|
}
|
|
|
public String getMappingId() {
|
return mappingId;
|
}
|
|
|
public boolean isDistinctSelect() {
|
return distinctSelect;
|
}
|
|
|
public boolean isStandardMove() {
|
return standardMove;
|
}
|
|
|
public String[] getFilterFieldValues() {
|
return filterFieldValues;
|
}
|
|
|
public String[] getKeyFieldPairs() {
|
return keyFieldPairs;
|
}
|
|
|
public AppendMode getAppendMode() {
|
return appendMode;
|
}
|
|
|
public DeleteMode getDeleteMode() {
|
return deleteMode;
|
}
|
|
|
public Direction getDirection() {
|
return direction;
|
}
|
|
|
public int getFromRowNo() {
|
return fromRowNo;
|
}
|
|
|
public int getToRowNo() {
|
return toRowNo;
|
}
|
|
|
public EntityMeta getFromMeta() {
|
return fromMeta;
|
}
|
|
|
public EntityMeta getToMeta() {
|
return toMeta;
|
}
|
|
|
public IOMapping getMapping() {
|
return mapping;
|
}
|
|
public void setMapping(IOMapping mapping) {
|
this.mapping = mapping;
|
}
|
|
public List<IOMappingItemRuntime> getUpdateMappingRuntime() {
|
return mappingRuntime.getUpdateMappingRuntime();
|
}
|
|
public List<IOMappingItemRuntime> getInsertMappingRuntime() {
|
return mappingRuntime.getInsertMappingRuntime();
|
}
|
|
public IOMappingRuntime getMappingRuntime() {
|
return mappingRuntime;
|
}
|
|
|
public IFileContext getContext() {
|
return context;
|
}
|
|
|
public int getLoglevel() {
|
return loglevel;
|
}
|
|
|
public void setLoglevel(int loglevel) {
|
this.loglevel = loglevel;
|
}
|
|
|
}
|