package org.businessmanager.domain; import java.io.File; import java.util.Date; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Transient; import org.businessmanager.domain.security.User; import org.businessmanager.service.filestorage.FileContentType; import org.hibernate.annotations.Type; import org.springframework.http.MediaType; @Entity public class StorageFile extends AbstractEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String fileId; @Enumerated(EnumType.STRING) private FileContentType contentType; @Type(type = "org.businessmanager.domain.usertypes.MediaUserType") private MediaType mediaType; private String filepath; private Integer version; @Temporal(TemporalType.TIMESTAMP) private Date created; @Temporal(TemporalType.TIMESTAMP) private Date deleted; @ManyToOne(targetEntity=User.class) private User user; @Transient private File file; public StorageFile() { } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getFileId() { return fileId; } public void setFileId(String fileId) { this.fileId = fileId; } public FileContentType getContentType() { return contentType; } public void setContentType(FileContentType contentType) { this.contentType = contentType; } public MediaType getMediaType() { return mediaType; } public void setMediaType(MediaType mediaType) { this.mediaType = mediaType; } public String getFilepath() { return filepath; } public void setFilepath(String filepath) { this.filepath = filepath; } public Integer getVersion() { return version; } public void setVersion(Integer version) { this.version = version; } public File getFile() { if(file == null && filepath != null) { file = new File(filepath); } return file; } public void setFile(File file) { this.file = file; } public Date getCreated() { return created; } public void setCreated(Date created) { this.created = created; } public Date getDeleted() { return deleted; } public void setDeleted(Date deleted) { this.deleted = deleted; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }