package eu.europa.esig.dss.validation.process.bbb.fc.checks; import eu.europa.esig.dss.jaxb.detailedreport.XmlFC; import eu.europa.esig.dss.jaxb.diagnostic.XmlContainerInfo; import eu.europa.esig.dss.utils.Utils; 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 ManifestFilePresentCheck extends ChainItem<XmlFC> { private final XmlContainerInfo containerInfo; private MessageTag message; private MessageTag error; public ManifestFilePresentCheck(XmlFC result, XmlContainerInfo containerInfo, LevelConstraint constraint) { super(result, constraint); this.containerInfo = containerInfo; } @Override protected boolean process() { if ("ASiC-S".equals(containerInfo.getContainerType())) { // ASiC-S no Manifest message = MessageTag.BBB_FC_IMFP_ASICS; error = MessageTag.BBB_FC_IMFP_ASICS_ANS; return Utils.isCollectionEmpty(containerInfo.getManifestFiles()); } else { // ASiC-E one or more manifest message = MessageTag.BBB_FC_IMFP_ASICE; error = MessageTag.BBB_FC_IMFP_ASICE_ANS; return Utils.isCollectionNotEmpty(containerInfo.getManifestFiles()); } } @Override protected MessageTag getMessageTag() { return message; } @Override protected MessageTag getErrorMessageTag() { return error; } @Override protected Indication getFailedIndicationForConclusion() { return Indication.FAILED; } @Override protected SubIndication getFailedSubIndicationForConclusion() { return null; } }