public void extractPOE(TimestampWrapper timestamp, DiagnosticData diagnosticData) { Date productionTime = timestamp.getProductionTime(); XmlSignedObjectsType signedObjects = timestamp.getSignedObjects(); if (signedObjects != null) { if (CollectionUtils.isNotEmpty(signedObjects.getSignedSignature())) { // SIGNATURES and TIMESTAMPS for (XmlSignedSignature signedSignature : signedObjects.getSignedSignature()) { addPOE(signedSignature.getId(), productionTime); } for (XmlTimestampedTimestamp timstampedTimastamp : signedObjects.getTimestampedTimestamp()) { addPOE(timstampedTimastamp.getId(), productionTime); } } if (CollectionUtils.isNotEmpty(signedObjects.getDigestAlgAndValue())) { for (XmlDigestAlgAndValueType digestAlgoAndValue : signedObjects.getDigestAlgAndValue()) { if (StringUtils.equals( TimestampReferenceCategory.CERTIFICATE.name(), digestAlgoAndValue.getCategory())) { String certificateId = getCertificateIdByDigest(digestAlgoAndValue, diagnosticData); if (certificateId != null) { addPOE(certificateId, productionTime); } } else if (StringUtils.equals( TimestampReferenceCategory.REVOCATION.name(), digestAlgoAndValue.getCategory())) { String revocationId = getRevocationIdByDigest(digestAlgoAndValue, diagnosticData); if (revocationId != null) { addPOE(revocationId, productionTime); } } } } } }