package edu.sjtu.infosec.ismp.manager.RAM.model; import java.io.Serializable; import java.util.Set; import org.hibernate.annotations.Cascade; import org.hibernate.annotations.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; 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; /** * 知识库静态威胁类别类. * */ @Entity @Table(name = "RAM_KNOW_STAT_THRE_KIND") @org.hibernate.annotations.Entity(dynamicInsert=true, dynamicUpdate = true) public class AsseKnowStatThreKind implements Serializable { /** * 静态威胁类别编号 */ @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="ID") private Integer id; /** * 静态威胁类别名称 */ @Column(name="KIND", length = 100, nullable = false) private String kind; /** * 关联静态威胁集 */ @OneToMany(mappedBy="threKind") @Cascade(value={CascadeType.SAVE_UPDATE,CascadeType.REMOVE}) private Set<AsseKnowStatThre> thres; /** * 关联静态漏洞威胁集 */ @OneToMany(mappedBy="threKind") @Cascade(value={CascadeType.SAVE_UPDATE,CascadeType.REMOVE}) private Set<AsseKnowStatLeakThre> leakThres; /** * 构造函数 */ public AsseKnowStatThreKind() { } /** * 构造函数 * * @param threKind * 静态威胁类别名称 */ public AsseKnowStatThreKind(String threKind) { this.kind = threKind; } /** * @return id */ public Integer getId() { return id; } /** * @param threKindId * 静态威胁类别编号 */ public void setId(Integer threKindId) { this.id = threKindId; } /** * @return kind */ public String getKind() { return kind; } /** * @param threats * 关联静态威胁集 */ public void setThres(Set<AsseKnowStatThre> threats) { this.thres = threats; } /** * @param threKind * 静态威胁类别名称 */ public void setKind(String threKind) { this.kind = threKind; } /** * @return thres */ public Set<AsseKnowStatThre> getThres() { return thres; } /** * @return leakThres */ public Set<AsseKnowStatLeakThre> getLeakThres() { return leakThres; } /** * @param vleakThres * 静态漏洞威胁集 */ public void setLeakThres(Set<AsseKnowStatLeakThre> vleakThres) { this.leakThres = vleakThres; } /** * 获取静态威胁类别哈希值 * * @return 哈希值 */ public int hashCode() { return new HashCodeBuilder().append(id).hashCode(); } /** * 比较是否相等 * * @param o * 静态威胁类别实例 * @return true/false */ public boolean equals(Object o) { if (!(o instanceof AsseKnowStatThreKind)) { return false; } AsseKnowStatThreKind another = (AsseKnowStatThreKind) o; return new EqualsBuilder().append(id, another.id).isEquals(); } /** * 静态威胁类别实例属性查看 * * @return 属性字符串 */ public String toString() { return new ToStringBuilder(this).append(id).append(kind).toString(); } }