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; import org.hibernate.annotations.Type; /** * 知识库静态安全要素类. */ @Entity @Table(name = "RAM_KNOW_STAT_SECU_ELEM") @org.hibernate.annotations.Entity(dynamicInsert=true, dynamicUpdate = true) public class AsseKnowStatSecuElem implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="ID", length=20) private Integer id; /** * 要素编码 */ @Column(name="ELEM_CODE", length = 10, nullable=false,unique=true) private String elemCode; /** * 要素名称 */ @Column(name="ELEM_NAME", length = 30) private String name; /** * 指标内容 */ @Column(name="CONTENT") @Type(type="text") private String content; /** * 备注 */ @Column(name="MEMO") @Type(type="text") private String memo; /** * 要素页面URL */ @Column(name="URL", length = 100) private String url; /** * 问题类型 */ @ManyToOne @Cascade(value={CascadeType.SAVE_UPDATE}) @JoinColumn(name="asse_know_dic_ques_kind_id") private AsseKnowDicQuesKind quesKind; /** * 父安全要素 */ @ManyToOne @Cascade(value={CascadeType.SAVE_UPDATE}) @JoinColumn(name="asse_know_stat_secu_elem_id") private AsseKnowStatSecuElem parentSecuElem; /** * 关联跳转点 */ @ManyToOne @Cascade(value={CascadeType.SAVE_UPDATE}) @JoinColumn(name="asse_know_stat_secu_elem_id_jump") private AsseKnowStatSecuElem jumpSecuElem; /** * 关联静态脆弱点 */ @ManyToOne @Cascade(value={CascadeType.SAVE_UPDATE}) @JoinColumn(name="asse_know_stat_vuln_poin_id") private AsseKnowStatVulnPoin vulnPoin; /** * 关联问卷集 */ @OneToMany(mappedBy="secuElem") @Cascade(value={CascadeType.SAVE_UPDATE}) private Set<AsseInfoPape> papes; /** * 构造函数 */ public AsseKnowStatSecuElem() { } /** * 构造函数 * * @param elemcode * 要素编码 */ public AsseKnowStatSecuElem(String elemcode) { this.elemCode = elemcode; } /** * 构造函数 * * @param elemcode * 要素编码 * @param secuElemName * 要素名称 */ public AsseKnowStatSecuElem(String elemcode, String secuElemName) { this.elemCode = elemcode; this.name = secuElemName; } public Integer getId() { return id; } public void setId(Integer vid) { this.id = vid; } /** * @return elemCode */ public String getElemCode() { return elemCode; } /** * @param elemcode * 要素编码 */ public void setElemCode(String elemcode) { this.elemCode = elemcode; } /** * @return name */ public String getName() { return name; } /** * @param elemName * 要素名称 */ public void setName(String elemName) { this.name = elemName; } /** * @return content */ public String getContent() { return content; } /** * @param cont * 指标内容 */ public void setContent(String cont) { this.content = cont; } /** * @return memo */ public String getMemo() { return memo; } /** * @param vMemo * 备注 */ public void setMemo(String vMemo) { this.memo = vMemo; } /** * @return quesKind */ public AsseKnowDicQuesKind getQuesKind() { return quesKind; } /** * @param queskind * 关联问题类型 */ public void setQuesKind(AsseKnowDicQuesKind queskind) { this.quesKind = queskind; } /** * @return parentSecuElem */ public AsseKnowStatSecuElem getParentSecuElem() { return parentSecuElem; } /** * @param parentsecuElem * 父安全要素 */ public void setParentSecuElem(AsseKnowStatSecuElem parentsecuElem) { this.parentSecuElem = parentsecuElem; } /** * @param jumpsecuElem * 跳转点 */ public void setJumpSecuElem(AsseKnowStatSecuElem jumpsecuElem) { this.jumpSecuElem = jumpsecuElem; } /** * @return jumpSecuElem */ public AsseKnowStatSecuElem getJumpSecuElem() { return jumpSecuElem; } /** * @return vulnPoin */ public AsseKnowStatVulnPoin getVulnPoin() { return vulnPoin; // } /** * @param vulnpoin * 关联静态脆弱点 */ public void setVulnPoin(AsseKnowStatVulnPoin vulnpoin) { this.vulnPoin = vulnpoin; } /** * @return url */ public String getUrl() { return url; } /** * @param elemUrl * 要素页面URL */ public void setUrl(String elemUrl) { this.url = elemUrl; } /** * @return papes */ public Set<AsseInfoPape> getPapes() { return papes; } /** * @param elemPapes * 关联问卷集 */ public void setPapes(Set<AsseInfoPape> elemPapes) { this.papes = elemPapes; } /** * 比较是否相等 * * @param o * 安全要素实例 * @return true/false */ public boolean equals(Object o) { if (!(o instanceof AsseKnowStatSecuElem)) { return false; } AsseKnowStatSecuElem another = (AsseKnowStatSecuElem) o; return new EqualsBuilder().append(elemCode, another.elemCode) .isEquals(); } /** * 获取哈希值 * * @return 哈希值 */ public int hashCode() { return new HashCodeBuilder().append(elemCode).hashCode(); } /** * 安全要素实例属性查看 * * @return 属性字符串 */ public String toString() { return new ToStringBuilder(this).append(elemCode).append(name).append( content).append(url).toString(); } }