/**
*
* The actual signed text is computed by Base64 encoding the binary data when * first requested. *
** The corresponding getters can be used to retrieve the signed document (e.g. * for displaying a preview). *
* * @author wprinz */ public class BinarySignatureHolder implements Serializable, SignatureHolder { /** * SVUID. */ private static final long serialVersionUID = -7208103904479272760L; /** * The whole pdf this holder was extracted from. */ private byte[] signed_pdf = null; /** * The number of bytes that give the signed document. */ private int signed_pdf_length = -1; /** * The signed text of this object. * ** This is the value that will be signed by the Connector. *
*/ private String signed_text = null; /** * The signature object. */ private SignatureObject signature_object = null; /** * Constructor that takes the pdf and the SignatureObject as parameters. * * @param pdf * The pdf data. * @param length * The length (number of bytes) of the pdf data to be used for being * converted into "signed text". * @param so * The signed signature object. */ public BinarySignatureHolder(final byte[] pdf, final int length, SignatureObject so) { this.signed_pdf = pdf; this.signed_pdf_length = length; this.signature_object = so; this.signed_text = null; } /** * @see at.knowcenter.wag.egov.egiz.pdf.SignatureHolder#getSignedText() */ public String getSignedText() { if (this.signed_text == null) { computeSignedText(); } return this.signed_text; } /** * @see at.knowcenter.wag.egov.egiz.pdf.SignatureHolder#getSignatureObject() */ public SignatureObject getSignatureObject() { return this.signature_object; } /** * Computes or recomputes the signed text from the underlying binary data. * ** This usually encodes the binary data of given length in Base64. *
* ** This is usually called automatically when the signed text is first * requested. *
*/ protected void computeSignedText() { this.signed_text = BinarySignature.retrieveSignableTextFromData(this.signed_pdf, this.signed_pdf_length); } /** * Returns the signed_pdf. * @return Returns the signed_pdf. */ public byte[] getSignedPdf() { return this.signed_pdf; } /** * Returns the signed_pdf_length. * @return Returns the signed_pdf_length. */ public int getSignedPdfLength() { return this.signed_pdf_length; } }