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 FileIOTypeCode 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(typeCode)) { toMeta = EntityMeta.getInstance(toName); } else if (FileIOTypeCode.Db.equals(typeCode)) { fromMeta = EntityMeta.getInstance(fromName); toMeta = EntityMeta.getInstance(toName); } else if (FileIOTypeCode.Output.equals(typeCode)) { fromMeta = EntityMeta.getInstance(fromName); } } //getter public String getId() { return id; } public String getFromName() { return fromName; } public String getToName() { return toName; } public FileIOTypeCode 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 getUpdateMappingRuntime() { return mappingRuntime.getUpdateMappingRuntime(); } public List 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; } }