package eu.europa.esig.dss.validation.executor;
import java.util.Date;
import eu.europa.esig.dss.jaxb.detailedreport.DetailedReport;
import eu.europa.esig.dss.jaxb.simplereport.SimpleReport;
import eu.europa.esig.dss.validation.policy.ValidationPolicy;
import eu.europa.esig.dss.validation.reports.Reports;
import eu.europa.esig.dss.validation.reports.wrapper.DiagnosticData;
public class CustomProcessExecutor implements ProcessExecutor {
private Date currentTime = new Date();
private ValidationLevel validationLevel = ValidationLevel.ARCHIVAL_DATA;
private eu.europa.esig.dss.jaxb.diagnostic.DiagnosticData jaxbDiagnosticData;
private DiagnosticData diagnosticData;
private ValidationPolicy policy;
@Override
public void setCurrentTime(Date currentTime) {
this.currentTime = currentTime;
}
@Override
public void setDiagnosticData(eu.europa.esig.dss.jaxb.diagnostic.DiagnosticData diagnosticData) {
this.jaxbDiagnosticData = diagnosticData;
}
@Override
public void setValidationPolicy(ValidationPolicy policy) {
this.policy = policy;
}
@Override
public void setValidationLevel(ValidationLevel validationLevel) {
this.validationLevel = validationLevel;
}
@Override
public Reports execute() {
assert jaxbDiagnosticData != null && policy != null && currentTime != null && validationLevel != null;
diagnosticData = new DiagnosticData(jaxbDiagnosticData);
DetailedReportBuilder detailedReportBuilder = new DetailedReportBuilder(currentTime, policy, validationLevel, diagnosticData);
DetailedReport detailedReport = detailedReportBuilder.build();
SimpleReportBuilder simpleReportBuilder = new SimpleReportBuilder(currentTime, policy, diagnosticData, validationLevel, detailedReport);
SimpleReport simpleReport = simpleReportBuilder.build();
return new Reports(jaxbDiagnosticData, detailedReport, simpleReport);
}
@Override
public Date getCurrentTime() {
return currentTime;
}
@Override
public ValidationPolicy getValidationPolicy() {
return policy;
}
}