/** * Copyright 2006 by Know-Center, Graz, Austria * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a * joint initiative of the Federal Chancellery Austria and Graz University of * Technology. * * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by * the European Commission - subsequent versions of the EUPL (the "Licence"); * You may not use this work except in compliance with the Licence. * You may obtain a copy of the Licence at: * http://www.osor.eu/eupl/ * * Unless required by applicable law or agreed to in writing, software * distributed under the Licence is distributed on an "AS IS" basis, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the Licence for the specific language governing permissions and * limitations under the Licence. * * This product combines work with different licenses. See the "NOTICE" text * file for details on the various modules and licenses. * The "NOTICE" text file is part of the distribution. Any derivative works * that you distribute must include a readable copy of the "NOTICE" text file. * * $Id: Signator.java,v 1.1 2006/08/25 17:07:21 wprinz Exp $ */ package at.knowcenter.wag.egov.egiz.framework; import at.gv.egiz.pdfas.framework.input.PdfDataSource; import at.knowcenter.wag.egov.egiz.PdfASID; import at.knowcenter.wag.egov.egiz.exceptions.PDFDocumentException; import at.knowcenter.wag.egov.egiz.exceptions.PresentableException; import at.knowcenter.wag.egov.egiz.pdf.IncrementalUpdateInformation; import at.knowcenter.wag.egov.egiz.pdf.TablePos; /** * The basic interface for signator algorithms. * * @author wprinz */ public interface Signator { /** * Returns the PdfASID of this Connector. * *

* This should always return the MY_ID static field of the connector. Dont't * forget to override this. *

*

* Within connector code always use this method so that code reuse through * derivation can take place correctly. *

* * @return Returns the PdfASID of this Connector. */ public PdfASID getMyId(); /** * This is called before the data is sent to the connector. * * @param pdf * The PDF document to be signed. * @param signature_type * The type/profile of the signature to apply. * @param pos * The table position. If null, the position is read from the * profile, if this is null too, the position is computed. * @param has_SIG_ID * Tells the algorithm, id a SIG_ID field will be required after * signing. Algorithms with fixed formatted signature blocks need to * know this. * @return Returns the IncrementalUpdateInformation. * @throws PresentableException * Forwarded exception. */ public IncrementalUpdateInformation prepareSign(PdfDataSource pdfDataSource, String signature_type, TablePos pos, boolean has_SIG_ID) throws PresentableException; /** * This is called after the data has been signed by the connector. * *

* Replaces all the left out placeholders with their values retrieved from the * signation process. *

* * @param iui * The IncrementalUpdateInformation. * @throws PDFDocumentException * Forwarded exception. */ public SignResult finishSign(IncrementalUpdateInformation iui) throws PresentableException; }