package edu.sjtu.infosec.ismp.manager.RAM.model; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; 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; import org.hibernate.annotations.Cascade; import org.hibernate.annotations.CascadeType; import org.hibernate.annotations.Type; /** * 知识库静态漏洞威胁类. * */ @Entity @Table(name = "RAM_KNOW_STAT_CVE_THRE") @org.hibernate.annotations.Entity(dynamicInsert=true, dynamicUpdate = true) public class AsseKnowStatCVEThre implements Serializable { /** * 静态漏洞威胁Id */ @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="ID") private Integer id; /** * 静态威胁编号 * */ @Column(name="threCode", length=30, nullable = false) private String threCode; /** * cveId * */ @Column(name="CVE_ID", length = 20) private String cveId; /** * 静态威胁描述 */ @Column(name="THREAT") @Type(type="text") private String threat; /** * 关联静态威胁类别 */ @ManyToOne @Cascade(value={CascadeType.SAVE_UPDATE}) @JoinColumn(name="asse_know_stat_thre_kind_id") private AsseKnowStatThreKind threKind; /** * 备注 */ @Column(name="MEMO") @Type(type="text") private String memo; /** * 构造函数 */ public AsseKnowStatCVEThre() { } /** * 构造函数 * * @param thre * 静态威胁描述 */ public AsseKnowStatCVEThre(String thre) { this.threat = thre; } /** * @return id */ public Integer getId() { return id; } /** * @param threId * 静态威胁Id */ public void setId(Integer threId) { this.id = threId; } /** * @return threCode */ public String getThreCode() { return threCode; } /** * @param vthreCode * 静态威胁编号 */ public void setThreCode(String vthreCode) { this.threCode = vthreCode; } /** * @return cveId * */ public String getCveId() { return cveId; } /** * @param vcveId * */ public void setCveId(String vcveId) { this.cveId = vcveId; } /** * @return threat */ public String getThreat() { return threat; } /** * @param thre * 静态威胁描述 */ public void setThreat(String thre) { this.threat = thre; } /** * 比较是否相等 * * @param o * 静态威胁实例 * @return true/false */ public boolean equals(Object o) { if (!(o instanceof AsseKnowStatCVEThre)) { return false; } AsseKnowStatCVEThre another = (AsseKnowStatCVEThre) o; return new EqualsBuilder().append(id, another.id).isEquals(); } /** * @return threKind */ public AsseKnowStatThreKind getThreKind() { return threKind; } /** * @param threkind * 关联静态威胁类别 */ public void setThreKind(AsseKnowStatThreKind threkind) { this.threKind = threkind; } /** * @return memo */ public String getMemo() { return memo; } /** * @param vMemo * 备注 */ public void setMemo(String vMemo) { this.memo = vMemo; } /** * 获取静态威胁对象哈希值 * * @return 哈希值 */ public int hashCode() { return new HashCodeBuilder().append(id).hashCode(); } /** * 静态威胁实例属性查看 * * @return 属性字符串 */ public String toString() { return new ToStringBuilder(this).append(id).append(cveId).append(threat).toString(); } }