From edd5756535f4a3cf9897837510dc12168715bdd5 Mon Sep 17 00:00:00 2001 From: tknall Date: Wed, 2 Dec 2009 18:11:11 +0000 Subject: Non-textual objects may be extracted during the analysis phase of the signature verification process git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@485 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../at/gv/egiz/pdfas/impl/api/PdfAsObject.java | 19 +++++++---- .../pdfas/impl/api/analyze/AnalyzeResultImpl.java | 37 ++++++++++++++++++++++ .../pdfas/impl/api/verify/VerifyResultsImpl.java | 9 ++++++ 3 files changed, 58 insertions(+), 7 deletions(-) (limited to 'src/main/java/at/gv/egiz/pdfas/impl/api') diff --git a/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java b/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java index df72a65..f98b0f0 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java @@ -53,8 +53,10 @@ import at.knowcenter.wag.egov.egiz.exceptions.PresentableException; import at.knowcenter.wag.egov.egiz.exceptions.SignatureException; import at.knowcenter.wag.egov.egiz.framework.SignatorFactory; import at.knowcenter.wag.egov.egiz.pdf.NoSignatureHolder; +import at.knowcenter.wag.egov.egiz.pdf.ObjectExtractor; import at.knowcenter.wag.egov.egiz.pdf.SignatureHolder; import at.knowcenter.wag.egov.egiz.pdf.TablePos; +import at.knowcenter.wag.egov.egiz.pdf.TextualSignature; import at.knowcenter.wag.egov.egiz.sig.SignatureResponse; import at.knowcenter.wag.egov.egiz.sig.SignatureTypeDefinition; import at.knowcenter.wag.egov.egiz.sig.SignatureTypes; @@ -280,10 +282,6 @@ public class PdfAsObject implements PdfAs fillVerifyAfterAnalysisParametersWithVerifyParameters(vaap, verifyParameters); VerifyResults res = verify(vaap); - if (verifyParameters.isReturnNonTextObjects()) { - res.setNonTextualObjects(PdfAS.extractNonTextualObjects(new PdfDataSourceAdapter(verifyParameters.getDocument()))); - } - return res; } @@ -302,6 +300,7 @@ public class PdfAsObject implements PdfAs { ap.setDocument(vp.getDocument()); ap.setVerifyMode(vp.getVerifyMode()); + ap.setReturnNonTextualObjects(vp.isReturnNonTextualObjects()); } /** @@ -381,8 +380,12 @@ public class PdfAsObject implements PdfAs sigInfs.add(si); } } + List nonTextInfos = null; + if (analyzeParameters.isReturnNonTextualObjects()) { + nonTextInfos = ObjectExtractor.extractNonTextInfo(new PdfDataSourceAdapter(analyzeParameters.getDocument())); + } - return new AnalyzeResultImpl(sigInfs, noSigs); + return new AnalyzeResultImpl(sigInfs, noSigs, nonTextInfos); } /** @@ -423,8 +426,10 @@ public class PdfAsObject implements PdfAs VerifyResult vr = new VerifyResultAdapter(response, holder, verifyAfterAnalysisParameters.getVerificationTime()); vrs.add(vr); } - - return new VerifyResultsImpl(vrs); + + VerifyResultsImpl verifyResults = new VerifyResultsImpl(vrs); + verifyResults.setNonTextualObjects(verifyAfterAnalysisParameters.getAnalyzeResult().getNonTextualObjects()); + return verifyResults; } } diff --git a/src/main/java/at/gv/egiz/pdfas/impl/api/analyze/AnalyzeResultImpl.java b/src/main/java/at/gv/egiz/pdfas/impl/api/analyze/AnalyzeResultImpl.java index 7b1dffa..a50b7a1 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/api/analyze/AnalyzeResultImpl.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/api/analyze/AnalyzeResultImpl.java @@ -5,7 +5,9 @@ package at.gv.egiz.pdfas.impl.api.analyze; import java.util.List; +import at.gv.egiz.pdfas.api.analyze.AnalyzeParameters; import at.gv.egiz.pdfas.api.analyze.AnalyzeResult; +import at.gv.egiz.pdfas.api.analyze.NonTextObjectInfo; import at.gv.egiz.pdfas.api.exceptions.PdfAsException; /** @@ -25,6 +27,8 @@ public class AnalyzeResultImpl implements AnalyzeResult */ protected List noSignatures = null; + protected List nonTextualObjects = null; + /** * Constructor. @@ -35,6 +39,20 @@ public class AnalyzeResultImpl implements AnalyzeResult * The found non-signature update blocks. */ public AnalyzeResultImpl(List signatures, List noSignatures) + { + this(signatures, noSignatures, null); + } + + /** + * Constructor. + * + * @param signatures + * The found signatures. + * @param noSignatures + * The found non-signature update blocks. + * @param nonTextInfos Non textual data from pdf provided that {@link AnalyzeParameters#setReturnNonTextualObjects(boolean)} was set. + */ + public AnalyzeResultImpl(List signatures, List noSignatures, List nonTextInfos) { if (signatures == null) { @@ -43,6 +61,7 @@ public class AnalyzeResultImpl implements AnalyzeResult this.signatures = signatures; this.noSignatures = noSignatures; + this.nonTextualObjects = nonTextInfos; } @@ -74,5 +93,23 @@ public class AnalyzeResultImpl implements AnalyzeResult return this.noSignatures; } + + + /** + * Returns non textual data from pdf provided that {@link AnalyzeParameters#setReturnNonTextualObjects(boolean)} + * has been set {@code true}. + * @return List of {@link NonTextObjectInfo} + */ + public List getNonTextualObjects() { + return this.nonTextualObjects; + } + + /** + * Returns true if non textual objects have been found, false if not. + * @return true if non textual objects have been found, false if not. + */ + public boolean hasNonTextualObjects() { + return this.nonTextualObjects != null && !this.nonTextualObjects.isEmpty(); + } } diff --git a/src/main/java/at/gv/egiz/pdfas/impl/api/verify/VerifyResultsImpl.java b/src/main/java/at/gv/egiz/pdfas/impl/api/verify/VerifyResultsImpl.java index c5e6713..22d446a 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/api/verify/VerifyResultsImpl.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/api/verify/VerifyResultsImpl.java @@ -46,4 +46,13 @@ public class VerifyResultsImpl implements VerifyResults this.nonTextualObjects = nonTextObjects; } + + /** + * Returns true if non textual objects have been found, false if not. + * @return true if non textual objects have been found, false if not. + */ + public boolean hasNonTextualObjects() { + return this.nonTextualObjects != null && !this.nonTextualObjects.isEmpty(); + } + } -- cgit v1.2.3