package foundation.io.object; import java.io.File; import foundation.data.entity.Entity; import foundation.data.entity.EntitySet; import foundation.data.object.DataObject; import foundation.json.IJSONProvider; import foundation.json.IJSONWriter; import foundation.server.config.Configer; import foundation.util.ID; import foundation.util.Util; public class FileRecord implements IJSONProvider { private boolean empty; private String senderName; private String senderId; private String indexId; private String senderFieldFileName; private String senderFieldFileId; private String fileName; private String path; private Long fileSize; private String contentType; private String fileIndexName; private EntitySet entitySet; public FileRecord() { empty = true; senderFieldFileName = "file_name"; senderFieldFileId = "file_id"; } public void load(Entity entity) { indexId = entity.getString("id"); senderId = entity.getString("sender_id"); senderName = entity.getString("sender_data_name"); senderFieldFileName = entity.getString("sender_field_file_name"); senderFieldFileId = entity.getString("sender_field_file_id"); fileName = entity.getString("file_name"); path = entity.getString("file_path"); contentType = entity.getString("file_content_type"); } public String getSenderName() { return senderName; } public void setSenderName(String senderName) { this.senderName = senderName; } public String getFileIndexName() { return fileIndexName; } public void setFileIndexName(String fileIndexName) throws Exception { this.fileIndexName = fileIndexName; } public String getSenderId() { return senderId; } public void setSenderId(String senderId) { if (Util.isEmpty(senderId)) { senderId = ID.newValue(); } this.senderId = senderId; } public String getFileName() { return fileName; } public File getFile() { File file = new File(path); return file; } public void setFileName(String fileName) { this.fileName = fileName; } public void setPath(String path) { this.path = path; empty = false; } public String getPath() { return path; } public String getPath(boolean translate) { if (path == null || !translate) { return path; } String result = path.replace("\\", "/"); return result; } private Object getRelativePath() { if (path == null) { return path; } String result = path.replace("\\", "/").replace(Configer.getParam("PathRepository"), ""); return result; } public void setFileSize(Long size) { this.fileSize = size; } public Long getFileSize() { return fileSize; } public boolean isEmpty() { return empty; } public void setContentType(String contentType) { this.contentType = contentType; } public String getContentType() { return contentType; } public String getIndexId() { return indexId; } public void setIndexId(String indexId) { this.indexId = indexId; } public void setSenderFieldFileName(String senderFieldFileName) { if (Util.isEmpty(senderFieldFileName)) { senderFieldFileName = "file_name"; } this.senderFieldFileName = senderFieldFileName; } public void setSenderFieldFileId(String senderFieldFileId) { if (Util.isEmpty(senderFieldFileId)) { senderFieldFileId = "file_id"; } this.senderFieldFileId = senderFieldFileId; } public Object getSenderFieldFileName() { return senderFieldFileName; } public Object getSenderFieldFileId() { return senderFieldFileId; } public void addFileEntity(Entity entity) throws Exception { DataObject dataObject = DataObject.getInstance(fileIndexName); if (entitySet == null) { entitySet = dataObject.createTableEntitySet(); } Entity recordEntity = dataObject.createTableEmptyEntity(); recordEntity.copyFrom(entity); recordEntity.set(IFileLetter.FilePath, getRelativePath()); entitySet.append(recordEntity); } @Override public void writeJSON(IJSONWriter writer) { writer.beginObject(); writer.write("file_index_id", indexId); writer.write("sender_id", senderId); writer.write("sender_data_name", senderName); writer.write("sender_field_file_name", senderFieldFileName); writer.write("sender_field_file_id", senderFieldFileId); writer.write("file_name", fileName); writer.write("file_size", fileSize); writer.write("file_content_type", contentType); writer.write("file_index_name", fileIndexName); writer.write("file_list", entitySet); writer.endObject(); } }