package eu.europa.esig.dss.asic.signature.asice;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import eu.europa.esig.dss.DSSDocument;
import eu.europa.esig.dss.asic.ASiCWithCAdESSignatureParameters;
import eu.europa.esig.dss.asic.signature.GetDataToSignASiCWithCAdESHelper;
public class DataToSignASiCEWithCAdESFromArchive extends AbstractDataToSignASiCEWithCAdES implements GetDataToSignASiCWithCAdESHelper {
private final List<DSSDocument> signedDocuments;
private final List<DSSDocument> existingSignatures;
private final List<DSSDocument> existingManifests;
private final ASiCWithCAdESSignatureParameters parameters;
private DSSDocument toBeSigned;
public DataToSignASiCEWithCAdESFromArchive(List<DSSDocument> signedDocuments, List<DSSDocument> existingSignatures, List<DSSDocument> existingManifests,
ASiCWithCAdESSignatureParameters parameters) {
this.signedDocuments = signedDocuments;
this.existingSignatures = existingSignatures;
this.existingManifests = existingManifests;
this.parameters = parameters;
}
@Override
public String getSignatureFilename() {
return getSignatureFileName(parameters.aSiC(), existingSignatures);
}
@Override
public DSSDocument getToBeSigned() {
if (toBeSigned == null) {
toBeSigned = getASiCManifest(signedDocuments, existingSignatures, existingManifests, parameters);
}
return toBeSigned;
}
@Override
public List<DSSDocument> getDetachedContents() {
return Collections.emptyList();
}
@Override
public List<DSSDocument> getSignedDocuments() {
return signedDocuments;
}
@Override
public List<DSSDocument> getManifestFiles() {
List<DSSDocument> manifests = new ArrayList<DSSDocument>(existingManifests);
manifests.add(getToBeSigned());
return manifests;
}
@Override
public List<DSSDocument> getSignatures() {
return existingSignatures;
}
}