package eu.europa.esig.dss.validation.process.vpftsp;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import eu.europa.esig.dss.jaxb.detailedreport.XmlBasicBuildingBlocks;
import eu.europa.esig.dss.jaxb.detailedreport.XmlValidationProcessTimestamps;
import eu.europa.esig.dss.validation.process.Chain;
import eu.europa.esig.dss.validation.process.ChainItem;
import eu.europa.esig.dss.validation.process.vpftsp.checks.TimestampBasicBuildingBlocksCheck;
import eu.europa.esig.dss.validation.reports.wrapper.TimestampWrapper;
/**
* 5.4 Validation process for time-stamps
*/
public class ValidationProcessForTimeStamps extends Chain<XmlValidationProcessTimestamps> {
private static final Logger logger = LoggerFactory.getLogger(ValidationProcessForTimeStamps.class);
private final TimestampWrapper timestamp;
private final Map<String, XmlBasicBuildingBlocks> bbbs;
public ValidationProcessForTimeStamps(TimestampWrapper timestamp, Map<String, XmlBasicBuildingBlocks> bbbs) {
super(new XmlValidationProcessTimestamps());
this.timestamp = timestamp;
this.bbbs = bbbs;
}
@Override
protected void initChain() {
XmlBasicBuildingBlocks tspBBB = bbbs.get(timestamp.getId());
if (tspBBB != null) {
firstItem = timestampBasicBuildingBlocksValid(tspBBB);
} else {
logger.error("Basic Building Blocks for timestamp " + timestamp.getId() + " not found!");
}
}
@Override
protected void addAdditionalInfo() {
result.setId(timestamp.getId());
result.setType(timestamp.getType());
}
private ChainItem<XmlValidationProcessTimestamps> timestampBasicBuildingBlocksValid(XmlBasicBuildingBlocks timestampBBB) {
return new TimestampBasicBuildingBlocksCheck(result, timestampBBB, getFailLevelConstraint());
}
}