package edu.sjtu.infosec.ismp.manager.RAM.model; import java.io.Serializable; import java.util.Set; 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.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; import org.hibernate.annotations.Cascade; import org.hibernate.annotations.CascadeType; /** * 知识库资产脆弱性类. * */ @Entity @Table(name = "RAM_KNOW_DYNA_VULN") @org.hibernate.annotations.Entity(dynamicInsert=true, dynamicUpdate = true) public class AsseKnowDynaVuln implements Serializable { /** * 资产脆弱性记录编号 */ @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="ID") private Integer id; /** * 脆弱点编号 */ @Column(name="asse_know_stat_vuln_poin_id", nullable = false) private Integer asseKnowStatVulnPoinId; /** * 脆弱点类别编号 */ @Column(name="asse_know_stat_vuln_kind_id", nullable = false) private Integer asseKnowStatVulnKindId; /** * 关联资产 */ @ManyToOne @Cascade(value={CascadeType.SAVE_UPDATE}) @JoinColumn(name="asse_info_asse_id") private AsseInfoAsse asse; /** * 所属业务编号 */ @Column(name="asse_info_busi_id") private Integer asseInfoBusiId; /** * 严重程度 */ @Column(name="SERI_LEVE", length = 2) private String seriLeve; /** * 来源 */ @Column(name="SOURCE", length = 10) private String source; /** * 测评项目编号 */ @Column(name="asse_info_proj_id", nullable = false) private Integer asseInfoProjId; /** * 关联资产威胁集 */ @OneToMany(mappedBy="dynaVuln") @Cascade(value={CascadeType.SAVE_UPDATE}) private Set<AsseKnowDynaThre> dynaThres; /** * 关联知识库动态评估结果 * */ @OneToMany(mappedBy="dynaVuln") @Cascade(value={CascadeType.SAVE_UPDATE}) private Set<AsseKnowDynaAsseResu> asseKnowDynaAsseResus; /** * @return id */ public Integer getId() { return id; } /** * @param vid * 资产脆弱性记录编号 */ public void setId(Integer vid) { this.id = vid; } /** * @return asseKnowStatVulnPoinId */ public Integer getAsseKnowStatVulnPoinId() { return asseKnowStatVulnPoinId; } /** * @param asse_know_stat_vuln_poin_vid * 脆弱点编号 */ public void setAsseKnowStatVulnPoinId(Integer asseKnowStatVulnPoinVid) { this.asseKnowStatVulnPoinId = asseKnowStatVulnPoinVid; } /** * @return asseKnowStatVulnKindId */ public Integer getAsseKnowStatVulnKindId() { return asseKnowStatVulnKindId; } /** * @return asse */ public AsseInfoAsse getAsse() { return asse; } /** * @param asseKnowStatVulnKindVid * 脆弱点类别编号 */ public void setAsseKnowStatVulnKindId(Integer asseKnowStatVulnKindVid) { this.asseKnowStatVulnKindId = asseKnowStatVulnKindVid; } /** * @param asseInfo * 关联资产 */ public void setAsse(AsseInfoAsse asseInfo) { this.asse = asseInfo; } /** * @return asseInfoBusiId */ public Integer getAsseInfoBusiId() { return asseInfoBusiId; } /** * @param asseInfoBusiVid * 所属业务id */ public void setAsseInfoBusiId(Integer asseInfoBusiVid) { this.asseInfoBusiId = asseInfoBusiVid; } /** * @return seriLeve */ public String getSeriLeve() { return seriLeve; } /** * @param serileve * 严重程度 */ public void setSeriLeve(String serileve) { this.seriLeve = serileve; } /** * @return source */ public String getSource() { return source; } /** * @param sour * 来源 */ public void setSource(String sour) { this.source = sour; } /** * @return asseInfoProjId. */ public Integer getAsseInfoProjId() { return asseInfoProjId; } /** * @param asseInfoProjVid * 测评项目id */ public void setAsseInfoProjId(Integer asseInfoProjVid) { this.asseInfoProjId = asseInfoProjVid; } /** * @return dynaThres */ public Set<AsseKnowDynaThre> getDynaThres() { return dynaThres; } /** * @param dynathres * 关联资产威胁集 */ public void setDynaThres(Set<AsseKnowDynaThre> dynathres) { this.dynaThres = dynathres; } /** * @return asseKnowDynaAsseResus * */ public Set<AsseKnowDynaAsseResu> getAsseKnowDynaAsseResus() { return asseKnowDynaAsseResus; } /** * @param asseknowDynaAsseResus 动态评估结果 * */ public void setAsseKnowDynaAsseResus( Set<AsseKnowDynaAsseResu> asseknowDynaAsseResus) { this.asseKnowDynaAsseResus = asseknowDynaAsseResus; } /** * 比较是否相等 * * @param o * 资产脆弱性实例 * @return true/false */ public boolean equals(Object o) { if (!(o instanceof AsseKnowDynaVuln)) { return false; } AsseKnowDynaVuln another = (AsseKnowDynaVuln) o; return new EqualsBuilder().append(id, another.id).isEquals(); } /** * 获取资产脆弱性实例哈希值 * * @return 哈希值 */ public int hashCode() { return new HashCodeBuilder().append(id).hashCode(); } /** * 资产脆弱性实例属性查看 * * @return 属性字符串 */ public String toString() { return new ToStringBuilder(this).append(id).append(asseKnowStatVulnPoinId).append( asseKnowStatVulnKindId).append(asseInfoBusiId).append(seriLeve).append(source) .append(asseInfoProjId).toString(); } }