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.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;
/**
* 知识库资产威胁性类.
*
*/
@Entity
@Table(name = "RAM_KNOW_DYNA_THRE")
@org.hibernate.annotations.Entity(dynamicInsert=true, dynamicUpdate = true)
public class AsseKnowDynaThre implements Serializable {
/**
* 资产威胁性记录编号
*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="ID")
private Integer id;
/**
* 关联资产
*/
@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;
/**
* 静态威胁Id
*/
@Column(name="asse_know_stat_thre_id", nullable = false)
private Integer asseKnowStatThreId;
/**
* 静态威胁编号
* */
@Column(name="threCode", length=10, nullable = false)
private String threCode;
/**
* 威胁类别编号
*/
@Column(name="asse_know_stat_thre_kind_id", nullable = false)
private Integer asseKnowStatThreKindId;
/**
* 安全事件发生可能性
*/
@Column(name="POSSIBILITY", length = 2, nullable = false)
private String possibility;
/**
* 测评项目编号
*/
@Column(name="asse_info_proj_id", nullable = false)
private Integer asseInfoProjId;
/**
* 关联知识库动态评估结果
* */
@OneToMany(mappedBy="dynaThre")
@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 asse
*/
public AsseInfoAsse getAsse() {
return asse;
}
/**
* @param asseInfo
* 关联资产
*/
public void setAsse(AsseInfoAsse asseInfo) {
this.asse = asseInfo;
}
/**
* @return dynaVuln
*/
public AsseKnowDynaVuln getDynaVuln() {
return dynaVuln;
}
/**
* @param vuln
* 关联资产脆弱性
*/
public void setDynaVuln(AsseKnowDynaVuln vuln) {
this.dynaVuln = vuln;
}
/**
* @return asseKnowStatThreId
*/
public Integer getAsseKnowStatThreId() {
return asseKnowStatThreId;
}
/**
* @param asseKnowStatThreVid
* 静态威胁Id
*/
public void setAsseKnowStatThreId(Integer asseKnowStatThreVid) {
this.asseKnowStatThreId = asseKnowStatThreVid;
}
/**
* @return threCode
*/
public String getThreCode() {
return threCode;
}
/**
* @param vthreCode
* 静态威胁编号
*/
public void setThreCode(String vthreCode) {
this.threCode = vthreCode;
}
/**
* @return asseKnowStatThreKindId
*/
public Integer getAsseKnowStatThreKindId() {
return asseKnowStatThreKindId;
}
/**
* @param asseKnowStatThreKindVid
* 威胁类别编号
*/
public void setAsseKnowStatThreKindId(Integer asseKnowStatThreKindVid) {
this.asseKnowStatThreKindId = asseKnowStatThreKindVid;
}
/**
* @return possibility
*/
public String getPossibility() {
return possibility;
}
/**
* @param poss
* 安全事件发生可能性
*/
public void setPossibility(String poss) {
this.possibility = poss;
}
/**
* @return asseInfoProjId
*/
public Integer getAsseInfoProjId() {
return asseInfoProjId;
}
/**
* @param asse_info_proj_vid
* 测评项目编号
*/
public void setAsseInfoProjId(Integer asseInfoProjVid) {
this.asseInfoProjId = asseInfoProjVid;
}
/**
* @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 AsseKnowDynaThre)) {
return false;
}
AsseKnowDynaThre another = (AsseKnowDynaThre) 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(asseKnowStatThreKindId).append(
threCode).append(possibility).append(asseInfoProjId).toString();
}
}