package open.dolphin.infomodel; import java.util.Date; import javax.persistence.*; /** * StampTreeModel * Userのパーソナルツリークラス。 * * @author Kazushi Minagawa, Digital Globe, Inc. */ @Entity @Table(name="d_stamp_tree") public class StampTreeModel extends InfoModel implements IStampTreeModel,java.io.Serializable { @Id @GeneratedValue(strategy=GenerationType.AUTO) private long id; // UserPK @ManyToOne @JoinColumn(name="user_id", nullable=false) private UserModel user; // TreeSetの名称 @Column(name="tree_name", nullable=false) private String name; // OID or Public // OID の時は施設用 private String publishType; // Treeのカテゴリ private String category; // 団体名等 private String partyName; // URL private String url; // 説明 private String description; // 公開した日 @Temporal(value = TemporalType.DATE) private Date publishedDate; // 最終更新日 @Temporal(value = TemporalType.DATE) private Date lastUpdated; // 公開しているtreeのエンティティ private String published; @Transient private String treeXml; @Column(nullable=false) @Lob private byte[] treeBytes; //minagawa^ 排他制御のための versionStr private String versionNumber; //minagawa$ @Override public long getId() { return id; } @Override public void setId(long id) { this.id = id; } @Override public UserModel getUserModel() { return user; } @Override public void setUserModel(UserModel user) { this.user = user; } @Override public String getName() { return name; } @Override public void setName(String name) { this.name = name; } @Override public String getPublishType() { return publishType; } @Override public void setPublishType(String publishType) { this.publishType = publishType; } @Override public String getCategory() { return category; } @Override public void setCategory(String category) { this.category = category; } @Override public String getPartyName() { return partyName; } @Override public void setPartyName(String partyName) { this.partyName = partyName; } @Override public String getUrl() { return url; } @Override public void setUrl(String url) { this.url = url; } @Override public String getDescription() { return description; } @Override public void setDescription(String description) { this.description = description; } @Override public Date getPublishedDate() { return publishedDate; } @Override public void setPublishedDate(Date publishedDate) { this.publishedDate = publishedDate; } @Override public Date getLastUpdated() { return lastUpdated; } @Override public void setLastUpdated(Date lastUpdated) { this.lastUpdated = lastUpdated; } public String getPublished() { return published; } public void setPublished(String published) { this.published = published; } @Override public byte[] getTreeBytes() { return treeBytes; } @Override public void setTreeBytes(byte[] treeBytes) { this.treeBytes = treeBytes; } @Override public String getTreeXml() { return treeXml; } @Override public void setTreeXml(String treeXml) { this.treeXml = treeXml; } //minagawa^ 排他制御 public String getVersionNumber() { return versionNumber; } public void setVersionNumber(String num) { versionNumber = num; } //minagawa$ @Override public int hashCode() { final int PRIME = 31; int result = 1; result = PRIME * result + (int) (id ^ (id >>> 32)); return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final StampTreeModel other = (StampTreeModel)obj; if (id != other.id) { return false; } return true; } @Override protected Object clone() throws CloneNotSupportedException { StampTreeModel ret = new StampTreeModel(); ret.setName("個人用"); ret.setDescription("個人用のスタンプセットです"); ret.setTreeXml(this.getTreeXml()); ret.setTreeBytes(this.getTreeBytes()); //ret.setUserModel(user); //ret.setPartyName(user.getFacilityModel().getFacilityName()) //ret.setUrl(url) return ret; } }