/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE file at the root of the source
* tree and available online at
*
* https://github.com/keeps/roda
*/
package org.roda.core.data.v2.risks;
import java.util.Arrays;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
import org.roda.core.data.common.RodaConstants;
import org.roda.core.data.v2.index.IsIndexed;
import com.fasterxml.jackson.annotation.JsonInclude;
@XmlRootElement(name = RodaConstants.RODA_OBJECT_RISK)
@JsonInclude(JsonInclude.Include.ALWAYS)
public class IndexedRisk extends Risk implements IsIndexed {
private static final long serialVersionUID = 2864416437668370485L;
private int incidencesCount = 0;
private int unmitigatedIncidencesCount = 0;
public IndexedRisk() {
super();
}
public IndexedRisk(IndexedRisk risk) {
super(risk);
this.incidencesCount = risk.getIncidencesCount();
}
public int getIncidencesCount() {
return incidencesCount;
}
public void setIncidencesCount(int incidencesCount) {
this.incidencesCount = incidencesCount;
}
public int getUnmitigatedIncidencesCount() {
return unmitigatedIncidencesCount;
}
public void setUnmitigatedIncidencesCount(int unmitigatedIncidencesCount) {
this.unmitigatedIncidencesCount = unmitigatedIncidencesCount;
}
@Override
public String getUUID() {
return getId();
}
@Override
public String toString() {
return "IndexedRisk [super=" + super.toString() + ", incidencesCount=" + incidencesCount
+ ", unmitigatedIncidencesCount=" + unmitigatedIncidencesCount + "]";
}
@Override
public List<String> toCsvHeaders() {
return Arrays.asList("id", "name", "description", "identifiedOn", "identifiedBy", "category", "notes",
"preMitigationProbability", "preMitigationImpact", "preMitigationSeverity", "preMitigationNotes",
"posMitigationProbability", "posMitigationImpact", "posMitigationSeverity", "posMitigationNotes",
"mitigationStrategy", "mitigationOwnerType", "mitigationOwner", "mitigationRelatedEventIdentifierType",
"mitigationRelatedEventIdentifierValue", "createdOn", "createdBy", "updatedOn", "updatedBy", "incidencesCount",
"unmitigatedIncidencesCount");
}
@Override
public List<Object> toCsvValues() {
return Arrays.asList(new Object[] {getId(), getName(), getDescription(), getIdentifiedOn(), getIdentifiedBy(),
getCategory(), getNotes(), getPreMitigationProbability(), getPreMitigationImpact(), getPreMitigationSeverity(),
getPreMitigationNotes(), getPostMitigationProbability(), getPostMitigationImpact(), getPostMitigationSeverity(),
getPreMitigationNotes(), getMitigationStrategy(), getMitigationOwnerType(), getMitigationOwner(),
getMitigationRelatedEventIdentifierType(), getMitigationRelatedEventIdentifierValue(), getCreatedOn(),
getCreatedBy(), getUpdatedOn(), getUpdatedBy(), getIncidencesCount(), getUnmitigatedIncidencesCount()});
}
@Override
public List<String> liteFields() {
return Arrays.asList(RodaConstants.INDEX_UUID);
}
}