package edu.sjtu.infosec.ismp.manager.VPM.sd.model; import java.io.Serializable; import java.sql.Timestamp; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToOne; import javax.persistence.Table; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; /** * @Description: 软件基本信息对象 * @author liuqing */ @Entity @Table(name = "vpm_sd_info") @org.hibernate.annotations.Entity(dynamicInsert = true, dynamicUpdate = true) public class SoftwareInfo implements Serializable { private static final long serialVersionUID = -2008561859196997709L; /** * 主键Id */ @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; /** * 软件名 必须项,必须和上传文件名相对应 (如:QQ.exe 对应的软件名就是QQ.exe) */ @Column(name = "name") private String name; /** * 软件类型,FILE or DIR */ @Column(name = "type") private String type; /** * 软件发布时间 */ @Column(name = "uploadTime") private Timestamp uploadTime; /** *界面使用的链接名称 */ @Column(name = "soft_link_name") private String softLinkName; /** * 软件MD5 */ @Column(name = "md5") private String MD5; /** * 验证信息 */ @Column(name = "validate") private String validate; /** * 软件大小,字节 */ @Column(name = "size") private Long size; /** * 软件类型 */ @ManyToOne @JoinColumn(name="type_id") private TypeInfo typeInfo; /** * 分发策略 */ @OneToOne(cascade={CascadeType.ALL},optional=false) @JoinColumn(name="dispatch_id") private DispatchPolicy dispatchPolicy; /** * 执行策略 */ @OneToOne(cascade={CascadeType.ALL},optional=false) @JoinColumn(name="execute_id") private ExecutePolicy executePolicy; /** * 验证策略 */ @OneToOne(cascade={CascadeType.ALL},optional=false) @JoinColumn(name="validate_id") private ValidatePolicy validatePolicy; /** * @return the id */ public Integer getId() { return id; } /** * @param id the id to set */ public void setId(Integer id) { this.id = id; } /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the type */ public String getType() { return type; } /** * @param type the type to set */ public void setType(String type) { this.type = type; } /** * @return the uploadTime */ public Timestamp getUploadTime() { return uploadTime; } /** * @param uploadTime the uploadTime to set */ public void setUploadTime(Timestamp uploadTime) { this.uploadTime = uploadTime; } /** * @return the softLinkName */ public String getSoftLinkName() { return softLinkName; } /** * @param softLinkName the softLinkName to set */ public void setSoftLinkName(String softLinkName) { this.softLinkName = softLinkName; } /** * @return the mD5 */ public String getMD5() { return MD5; } /** * @param md5 the mD5 to set */ public void setMD5(String md5) { MD5 = md5; } /** * @return the validate */ public String getValidate() { return validate; } /** * @param validate the validate to set */ public void setValidate(String validate) { this.validate = validate; } /** * @return the size */ public Long getSize() { return size; } /** * @param size the size to set */ public void setSize(Long size) { this.size = size; } /** * @return the typeInfo */ public TypeInfo getTypeInfo() { return typeInfo; } /** * @param typeInfo the typeInfo to set */ public void setTypeInfo(TypeInfo typeInfo) { this.typeInfo = typeInfo; } /** * @return the dispatchPolicy */ public DispatchPolicy getDispatchPolicy() { return dispatchPolicy; } /** * @param dispatchPolicy the dispatchPolicy to set */ public void setDispatchPolicy(DispatchPolicy dispatchPolicy) { this.dispatchPolicy = dispatchPolicy; } /** * @return the executePolicy */ public ExecutePolicy getExecutePolicy() { return executePolicy; } /** * @param executePolicy the executePolicy to set */ public void setExecutePolicy(ExecutePolicy executePolicy) { this.executePolicy = executePolicy; } /** * @return the validatePolicy */ public ValidatePolicy getValidatePolicy() { return validatePolicy; } /** * @param validatePolicy the validatePolicy to set */ public void setValidatePolicy(ValidatePolicy validatePolicy) { this.validatePolicy = validatePolicy; } /** * {@inheritDoc} * * @see edu.sjtu.infosec.ismp.base.BaseObject#equals(java.lang.Object) */ @Override public boolean equals(Object other) { if (!(other instanceof SoftwareInfo)) return false; SoftwareInfo castOther = (SoftwareInfo) other; return new EqualsBuilder().append(id, castOther.id).append(name, castOther.name).append(type, castOther.type).append(size, castOther.size).append(uploadTime, castOther.uploadTime).append(MD5, castOther.MD5).append(validate, castOther.validate).isEquals(); } /** * {@inheritDoc} * * @see edu.sjtu.infosec.ismp.base.BaseObject#hashCode() */ @Override public int hashCode() { // TODO Auto-generated method stub return new HashCodeBuilder().append(id).append(name).append(type).append(size) .append(uploadTime).append(MD5).append( validate).toHashCode(); } /** * {@inheritDoc} * * @see edu.sjtu.infosec.ismp.base.BaseObject#toString() */ @Override public String toString() { // TODO Auto-generated method stub return new ToStringBuilder(this).append(id).append("name", name).append("type", type).append("size", size).append("uploadTime", uploadTime) .append("MD5", MD5).append( "validate", validate).toString(); } }