package eu.europa.esig.dss.validation.process.vpfswatsp.checks;
import java.util.List;
import eu.europa.esig.dss.jaxb.detailedreport.XmlConstraintsConclusion;
import eu.europa.esig.dss.jaxb.detailedreport.XmlName;
import eu.europa.esig.dss.jaxb.detailedreport.XmlValidationProcessArchivalData;
import eu.europa.esig.dss.validation.policy.rules.Indication;
import eu.europa.esig.dss.validation.policy.rules.SubIndication;
import eu.europa.esig.dss.validation.process.ChainItem;
import eu.europa.esig.dss.validation.process.MessageTag;
import eu.europa.esig.jaxb.policy.LevelConstraint;
public class LongTermValidationCheck extends ChainItem<XmlValidationProcessArchivalData> {
private final XmlConstraintsConclusion longTermValidationResult;
private Indication ltvIndication;
private SubIndication ltvSubIndication;
private List<XmlName> ltvErrors;
public LongTermValidationCheck(XmlValidationProcessArchivalData result, XmlConstraintsConclusion longTermValidationResult, LevelConstraint constraint) {
super(result, constraint);
this.longTermValidationResult = longTermValidationResult;
}
@Override
protected boolean process() {
if (longTermValidationResult != null && longTermValidationResult.getConclusion() != null) {
ltvIndication = longTermValidationResult.getConclusion().getIndication();
ltvSubIndication = longTermValidationResult.getConclusion().getSubIndication();
ltvErrors = longTermValidationResult.getConclusion().getErrors();
return Indication.PASSED.equals(ltvIndication)
|| (Indication.INDETERMINATE.equals(ltvIndication) && (SubIndication.REVOKED_NO_POE.equals(ltvSubIndication)
|| SubIndication.REVOKED_CA_NO_POE.equals(ltvSubIndication) || SubIndication.OUT_OF_BOUNDS_NO_POE.equals(ltvSubIndication)
|| SubIndication.CRYPTO_CONSTRAINTS_FAILURE_NO_POE.equals(ltvSubIndication)));
}
return false;
}
@Override
protected MessageTag getMessageTag() {
return MessageTag.ARCH_LTVV;
}
@Override
protected MessageTag getErrorMessageTag() {
return MessageTag.ARCH_LTVV_ANS;
}
@Override
protected List<XmlName> getPreviousErrors() {
return ltvErrors;
}
@Override
protected Indication getFailedIndicationForConclusion() {
return ltvIndication;
}
@Override
protected SubIndication getFailedSubIndicationForConclusion() {
return ltvSubIndication;
}
}