package edu.sjtu.infosec.ismp.manager.RAM.model;
import java.io.Serializable;
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 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;
/**
* 知识库动态评估结果类.
*
*/
@Entity
@Table(name = "RAM_KNOW_DYNA_ASSE_RESU")
@org.hibernate.annotations.Entity(dynamicInsert = true, dynamicUpdate = true)
public class AsseKnowDynaAsseResu implements Serializable {
/**
* 动态评估结果记录编号
*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private Integer id;
/**
* 测评项目编号
*/
@Column(name = "asse_info_proj_id", nullable = false)
private Integer asseInfoProjId;
/**
* 资产
*/
@ManyToOne
@Cascade(value = { CascadeType.SAVE_UPDATE })
@JoinColumn(name = "asse_info_asse_id")
private AsseInfoAsse asse;
/**
* 脆弱点
*/
@ManyToOne
@Cascade(value = { CascadeType.SAVE_UPDATE })
@JoinColumn(name = "asse_know_dyna_vuln_id")
private AsseKnowDynaVuln dynaVuln;
/**
* 威胁
*/
@ManyToOne
@Cascade(value = { CascadeType.SAVE_UPDATE })
@JoinColumn(name = "asse_know_dyna_thre_id")
private AsseKnowDynaThre dynaThre;
/**
* 资产漏洞
*/
@ManyToOne
@Cascade(value = { CascadeType.SAVE_UPDATE })
@JoinColumn(name = "asse_know_dyna_leak_id")
private AsseKnowDynaLeak dynaLeak;
/**
* 资产漏洞威胁
*/
@ManyToOne
@Cascade(value = { CascadeType.SAVE_UPDATE })
@JoinColumn(name = "asse_know_dyna_leak_thre_id")
private AsseKnowDynaLeakThre dynaLeakThre;
/**
* 风险值
*/
@Column(name = "risk_valu", length = 5)
private String riskValu;
/**
* @return id
*/
public Integer getId() {
return id;
}
/**
* @param vid
* 记录编号
*/
public void setId(Integer vid) {
this.id = vid;
}
/**
* @return asseInfoProjId
*/
public Integer getAsseInfoProjId() {
return asseInfoProjId;
}
/**
* @param asseInfoProjVid
* 测评项目编号
*/
public void setAsseInfoProjId(Integer asseInfoProjVid) {
this.asseInfoProjId = asseInfoProjVid;
}
/**
* @return asse
*/
public AsseInfoAsse getAsse() {
return asse;
}
/**
* @param asseInfo
* 资产
*/
public void setAsse(AsseInfoAsse asseInfo) {
this.asse = asseInfo;
}
/**
* @return dynaVuln
*/
public AsseKnowDynaVuln getDynaVuln() {
return dynaVuln;
}
/**
* @param vdynaVuln
* 脆弱点
*/
public void setDynaVuln(AsseKnowDynaVuln vdynaVuln) {
this.dynaVuln = vdynaVuln;
}
/**
* @return dynaThre
*/
public AsseKnowDynaThre getDynaThre() {
return dynaThre;
}
/**
* @param vdynaThre
* 威胁
*/
public void setDynaThre(AsseKnowDynaThre vdynaThre) {
this.dynaThre = vdynaThre;
}
/**
* @return dynaLeak
*/
public AsseKnowDynaLeak getDynaLeak() {
return dynaLeak;
}
/**
* @param vdynaLeak
* 资产漏洞
*/
public void setDynaLeak(AsseKnowDynaLeak vdynaLeak) {
this.dynaLeak = vdynaLeak;
}
/**
* @return dynaLeakThre
*/
public AsseKnowDynaLeakThre getDynaLeakThre() {
return dynaLeakThre;
}
/**
* @param vdynaLeakThre
* 资产漏洞威胁
*/
public void setDynaLeakThre(AsseKnowDynaLeakThre vdynaLeakThre) {
this.dynaLeakThre = vdynaLeakThre;
}
/**
* @return riskValu
*/
public String getRiskValu() {
return riskValu;
}
/**
* @param riskvalu
* 风险值
*/
public void setRiskValu(String riskvalu) {
this.riskValu = riskvalu;
}
/**
* 比较是否相等
*
* @param o
* 动态评估结果实例
* @return true/false
*/
public boolean equals(Object o) {
if (!(o instanceof AsseKnowDynaAsseResu)) {
return false;
}
AsseKnowDynaAsseResu another = (AsseKnowDynaAsseResu) 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(asseInfoProjId)
.append(riskValu).toString();
}
}