package com.denimgroup.threadfix.data.entities; import java.util.Calendar; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.validation.constraints.Size; import org.codehaus.jackson.annotate.JsonIgnore; // TODO add mappings for commented sections @Entity @Table(name = "DeletedVulnerability") public class DeletedVulnerability extends AuditableEntity { private static final long serialVersionUID = 7131204375011911346L; public DeletedVulnerability(Vulnerability vulnerability) { if (vulnerability != null) { setGenericVulnerability(vulnerability.getGenericVulnerability()); setGenericSeverity(vulnerability.getGenericSeverity()); setVariableHash(vulnerability.getVariableHash()); setLocationVariableHash(vulnerability.getLocationVariableHash()); setLocationHash(vulnerability.getLocationHash()); setActive(vulnerability.isActive()); setIsFalsePositive(vulnerability.getIsFalsePositive()); setWafRuleGeneratedTime(vulnerability.getWafRuleGeneratedTime()); setDefectSubmittedTime(vulnerability.getDefectSubmittedTime()); setDefectClosedTime(vulnerability.getDefectClosedTime()); setOpenTime(vulnerability.getOpenTime()); setCloseTime(vulnerability.getCloseTime()); setExpired(vulnerability.isExpired()); setFoundByScanner(vulnerability.isFoundByScanner()); setId(vulnerability.getId()); if (vulnerability.getApplication() != null) { setApplicationId(vulnerability.getApplication().getId()); } if (vulnerability.getDefect() != null) { setDefectId(vulnerability.getDefect().getId()); } if (vulnerability.getSurfaceLocation() != null) { setSurfaceLocationId(vulnerability.getSurfaceLocation().getId()); } } } private Integer applicationId; private GenericVulnerability genericVulnerability; private GenericSeverity genericSeverity; @Size(max = 128, message = "{errors.maxlength} 128.") private String variableHash; @Size(max = 128, message = "{errors.maxlength} 128.") private String locationVariableHash; @Size(max = 128, message = "{errors.maxlength} 128.") private String locationHash; private boolean isFalsePositive = false; private Calendar wafRuleGeneratedTime; private Calendar defectSubmittedTime; private Calendar defectClosedTime; private Calendar openTime; private Calendar closeTime; private boolean foundByScanner = true; private boolean expired = false; private int defectId; private int surfaceLocationId; @Column public Integer getApplicationId() { return applicationId; } public void setApplicationId(Integer applicationId) { this.applicationId = applicationId; } @ManyToOne @JoinColumn(name = "genericVulnerabilityId") public GenericVulnerability getGenericVulnerability() { return genericVulnerability; } public void setGenericVulnerability(GenericVulnerability genericVulnerability) { this.genericVulnerability = genericVulnerability; } @ManyToOne @JoinColumn(name = "genericSeverityId") public GenericSeverity getGenericSeverity() { return genericSeverity; } public void setGenericSeverity(GenericSeverity genericSeverity) { this.genericSeverity = genericSeverity; } @Column(length = 128, nullable = true) @JsonIgnore public String getVariableHash() { return variableHash; } public void setVariableHash(String variableHash) { this.variableHash = variableHash; } @Column(length = 128, nullable = true) @JsonIgnore public String getLocationVariableHash() { return locationVariableHash; } public void setLocationVariableHash(String locationVariableHash) { this.locationVariableHash = locationVariableHash; } @Column(length = 128, nullable = true) @JsonIgnore public String getLocationHash() { return locationHash; } public void setLocationHash(String locationHash) { this.locationHash = locationHash; } @Column(nullable = false) public boolean getIsFalsePositive() { return isFalsePositive; } public void setIsFalsePositive(boolean isFalsePositive) { this.isFalsePositive = isFalsePositive; } @Temporal(TemporalType.TIMESTAMP) @JsonIgnore public Calendar getWafRuleGeneratedTime() { return wafRuleGeneratedTime; } public void setWafRuleGeneratedTime(Calendar wafRuleGeneratedTime) { this.wafRuleGeneratedTime = wafRuleGeneratedTime; } @Temporal(TemporalType.TIMESTAMP) @JsonIgnore public Calendar getDefectSubmittedTime() { return defectSubmittedTime; } public void setDefectSubmittedTime(Calendar defectSubmittedTime) { this.defectSubmittedTime = defectSubmittedTime; } @Temporal(TemporalType.TIMESTAMP) @JsonIgnore public Calendar getDefectClosedTime() { return defectClosedTime; } public void setDefectClosedTime(Calendar defectClosedTime) { this.defectClosedTime = defectClosedTime; } @Temporal(TemporalType.TIMESTAMP) public Calendar getOpenTime() { return openTime; } public void setOpenTime(Calendar openTime) { this.openTime = openTime; } @Temporal(TemporalType.TIMESTAMP) public Calendar getCloseTime() { return closeTime; } public void setCloseTime(Calendar closeTime) { this.closeTime = closeTime; } @Column(nullable = false) @JsonIgnore public boolean isExpired() { return expired; } public void setExpired(boolean isExpired) { this.expired = isExpired; } /** * This indicates whether the user has closed the vulnerability. * @return */ @Column(nullable = false) @JsonIgnore public boolean isFoundByScanner() { return foundByScanner; } public void setFoundByScanner(boolean isFoundByScanner) { this.foundByScanner = isFoundByScanner; } public int getDefectId() { return defectId; } public void setDefectId(int defectId) { this.defectId = defectId; } public int getSurfaceLocationId() { return surfaceLocationId; } public void setSurfaceLocationId(int surfaceLocationId) { this.surfaceLocationId = surfaceLocationId; } }