package eu.europa.esig.dss.validation.process.vpfswatsp.checks; import java.util.Date; import eu.europa.esig.dss.jaxb.detailedreport.XmlBasicBuildingBlocks; import eu.europa.esig.dss.jaxb.detailedreport.XmlPSV; import eu.europa.esig.dss.jaxb.detailedreport.XmlValidationProcessArchivalData; import eu.europa.esig.dss.validation.policy.Context; import eu.europa.esig.dss.validation.policy.ValidationPolicy; 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.dss.validation.process.vpfswatsp.POEExtraction; import eu.europa.esig.dss.validation.process.vpfswatsp.checks.psv.PastSignatureValidation; import eu.europa.esig.dss.validation.reports.wrapper.DiagnosticData; import eu.europa.esig.dss.validation.reports.wrapper.SignatureWrapper; import eu.europa.esig.jaxb.policy.LevelConstraint; public class PastSignatureValidationCheck extends ChainItem<XmlValidationProcessArchivalData> { private final SignatureWrapper signature; private final DiagnosticData diagnosticData; private final XmlBasicBuildingBlocks bbb; private final POEExtraction poe; private final Date currentTime; private final ValidationPolicy policy; private final Context context; private Indication indication; private SubIndication subIndication; public PastSignatureValidationCheck(XmlValidationProcessArchivalData result, SignatureWrapper signature, DiagnosticData diagnosticData, XmlBasicBuildingBlocks bbb, POEExtraction poe, Date currentTime, ValidationPolicy policy, Context context, LevelConstraint constraint) { super(result, constraint); this.signature = signature; this.diagnosticData = diagnosticData; this.bbb = bbb; this.poe = poe; this.currentTime = currentTime; this.policy = policy; this.context = context; } @Override protected boolean process() { PastSignatureValidation psv = new PastSignatureValidation(signature, diagnosticData, bbb, poe, currentTime, policy, context); XmlPSV psvResult = psv.execute(); bbb.setPSV(psvResult); if (isValid(psvResult)) { return true; } else { indication = psvResult.getConclusion().getIndication(); subIndication = psvResult.getConclusion().getSubIndication(); return false; } } @Override protected MessageTag getMessageTag() { return MessageTag.PSV_IPSVC; } @Override protected MessageTag getErrorMessageTag() { return MessageTag.PSV_IPSVC_ANS; } @Override protected Indication getFailedIndicationForConclusion() { return indication; } @Override protected SubIndication getFailedSubIndicationForConclusion() { return subIndication; } }