package open.dolphin.infomodel;
import java.io.Serializable;
import javax.persistence.*;
import javax.swing.ImageIcon;
/**
* カルテのアタッチメント(文書や画像)クラス。
*
* @author Kazushi Minagawa. Digital Globe, Inc.
*/
@Entity
@Table(name = "d_attachment")
public class AttachmentModel extends KarteEntryBean implements Serializable,java.lang.Cloneable {
private String fileName;
private String contentType;
private long contentSize;
private long lastModified;
private String digest;
private String title;
private String uri;
private String extension;
private String memo;
@Lob
@Column(nullable=false)
private byte[] bytes; // data
@ManyToOne
@JoinColumn(name="doc_id", nullable=false)
private DocumentModel document;
@Transient
private ImageIcon icon; // icon
@Transient
private int attachmentNumber;
@Transient
private String location;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContentType() {
return contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
public byte[] getBytes() {
return bytes;
}
public void setBytes(byte[] bytes) {
this.bytes = bytes;
}
public DocumentModel getDocumentModel() {
return document;
}
public void setDocumentModel(DocumentModel document) {
this.document = document;
}
public ImageIcon getIcon() {
return icon;
}
public void setIcon(ImageIcon icon) {
this.icon = icon;
}
public int getAttachmentNumber() {
return attachmentNumber;
}
public void setAttachmentNumber(int attachmentNumber) {
this.attachmentNumber = attachmentNumber;
}
public String getExtension() {
return extension;
}
public void setExtension(String extension) {
this.extension = extension;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public long getLastModified() {
return lastModified;
}
public void setLastModified(long lastModified) {
this.lastModified = lastModified;
}
public String getDigest() {
return digest;
}
public void setDigest(String digest) {
this.digest = digest;
}
public long getContentSize() {
return contentSize;
}
public void setContentSize(long contentSize) {
this.contentSize = contentSize;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
@Override
protected Object clone() throws CloneNotSupportedException {
AttachmentModel ret = new AttachmentModel();
ret.setConfirmed(this.getConfirmed());
ret.setEnded(this.getEnded());
ret.setFirstConfirmed(this.getConfirmed());
ret.setLinkId(this.getLinkId());
ret.setLinkRelation(this.getLinkRelation());
ret.setRecorded(this.getRecorded());
ret.setStarted(this.getStarted());
ret.setStatus(this.getStatus());
ret.setFileName(this.getFileName());
ret.setContentType(this.getContentType());
ret.setContentSize(this.getContentSize());
ret.setLastModified(this.getLastModified());
ret.setDigest(this.getDigest());
ret.setTitle(this.getTitle());
ret.setUri(this.getUri());
ret.setExtension(this.getExtension());
ret.setMemo(this.getMemo());
ret.setAttachmentNumber(this.getAttachmentNumber());
ret.setLocation(this.getLocation());
if (this.getIcon()!=null) {
ret.setIcon(new ImageIcon(this.getIcon().getImage()));
}
if (this.getBytes()!=null) {
byte[] dest = new byte[this.getBytes().length];
System.arraycopy(this.getBytes(), 0, dest, 0, this.getBytes().length);
ret.setBytes(dest);
}
return ret;
}
}