package com.denimgroup.threadfix.data.entities; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; @Entity @Table(name = "DeletedFinding") public class DeletedFinding extends AuditableEntity { private static final long serialVersionUID = 5278544549677181952L; private Vulnerability vulnerability; private Integer deletedScanId; private String longDescription; private ChannelVulnerability channelVulnerability; private String nativeId; private ChannelSeverity channelSeverity; private int numberMergedResults = 1; private String sourceFileLocation; private boolean isStatic; private boolean isFirstFindingForVuln; private boolean isMarkedFalsePositive = false; private User user; public DeletedFinding(Finding originalFinding) { if (originalFinding != null) { setSourceFileLocation(originalFinding.getSourceFileLocation()); setNativeId(originalFinding.getNativeId()); setIsStatic(originalFinding.getIsStatic()); setMarkedFalsePositive(originalFinding.isMarkedFalsePositive()); setUser(originalFinding.getUser()); setId(originalFinding.getId()); setChannelSeverity(originalFinding.getChannelSeverity()); setChannelVulnerability(originalFinding.getChannelVulnerability()); setLongDescription(originalFinding.getLongDescription()); if (originalFinding.getScan() != null) { setDeletedScanId(originalFinding.getScan().getId()); } } } @ManyToOne @JoinColumn(name = "vulnerabilityId") public Vulnerability getVulnerability() { return vulnerability; } public void setVulnerability(Vulnerability vulnerability) { this.vulnerability = vulnerability; } @Column public Integer getDeletedScanId() { return deletedScanId; } public void setDeletedScanId(Integer deletedScanId) { this.deletedScanId = deletedScanId; } @ManyToOne @JoinColumn(name = "channelVulnerabilityId") public ChannelVulnerability getChannelVulnerability() { return channelVulnerability; } public void setChannelVulnerability( ChannelVulnerability channelVulnerability) { this.channelVulnerability = channelVulnerability; } @Column(length = Finding.NATIVE_ID_LENGTH) public String getNativeId() { return nativeId; } public void setNativeId(String nativeId) { this.nativeId = nativeId; } @ManyToOne @JoinColumn(name = "channelSeverityId") public ChannelSeverity getChannelSeverity() { return channelSeverity; } public void setChannelSeverity(ChannelSeverity channelSeverity) { this.channelSeverity = channelSeverity; } @Column(nullable = false) public boolean getIsStatic() { return isStatic; } public void setIsStatic(boolean isStatic) { this.isStatic = isStatic; } public String getSourceFileLocation() { return sourceFileLocation; } @Column(length = Finding.SOURCE_FILE_LOCATION_LENGTH) public void setSourceFileLocation(String sourceFileLocation) { this.sourceFileLocation = sourceFileLocation; } @Column public void setNumberMergedResults(int numMergedResults) { this.numberMergedResults = numMergedResults; } @Column public int getNumberMergedResults() { return numberMergedResults; } @ManyToOne @JoinColumn(name = "userId") public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Column(length = Finding.LONG_DESCRIPTION_LENGTH) public void setLongDescription(String longDescription) { this.longDescription = longDescription; } public String getLongDescription() { return longDescription; } @Column(nullable = false) public boolean isFirstFindingForVuln() { return isFirstFindingForVuln; } public void setFirstFindingForVuln(boolean isFirstFindingForVuln) { this.isFirstFindingForVuln = isFirstFindingForVuln; } @Column public boolean isMarkedFalsePositive() { return isMarkedFalsePositive; } public void setMarkedFalsePositive(boolean isMarkedFalsePositive) { this.isMarkedFalsePositive = isMarkedFalsePositive; } }