/** * */ package at.gv.egiz.pdfas.framework; import at.knowcenter.wag.egov.egiz.PdfASID; import at.knowcenter.wag.egov.egiz.exceptions.SignatorFactoryException; import at.gv.egiz.pdfas.impl.signator.binary.BinarySignator_1_0_0; import at.gv.egiz.pdfas.impl.signator.binary.BinarySignator_1_1_0; import at.gv.egiz.pdfas.impl.signator.detached.DetachedTextualSignator_1_0_0; import at.gv.egiz.pdfas.impl.signator.textual.TextualSignator_1_0_0; import at.gv.egiz.pdfas.impl.signator.textual.TextualSignator_1_1_0; import at.gv.egiz.pdfas.framework.signator.Signator; /** * @author wprinz * */ public class SignatorFactory { /** * The Vendor. */ public static final String VENDOR = "bka.gv.at"; //$NON-NLS-1$ /** * The binary Signator algorithm. */ public static final String TYPE_BINARY = "binaer"; //$NON-NLS-1$ /** * The textual Signator algorithm. */ public static final String TYPE_TEXTUAL = "text"; //$NON-NLS-1$ /** * Detached Signator. */ public static final String TYPE_DETACHED_TEXTUAL = "detachedtext"; //$NON-NLS-1$ /** * This application's current algorithm versions. */ public static final String VERSION_1_0_0 = "v1.0.0"; //$NON-NLS-1$ /** * This application's current algorithm versions. */ public static final String VERSION_1_1_0 = "v1.1.0"; //$NON-NLS-1$ public static Signator createSignator (PdfASID id) throws SignatorFactoryException { if (!id.getVendor().equals(VENDOR)) { throw new SignatorFactoryException("The vendor '" + id.getVendor() + "' is unrecognized by this SignatorFactory. (id='" + id + "')"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } if (id.getType().equals(TYPE_BINARY)) { if (id.getVersion().equals(VERSION_1_0_0)) { return new BinarySignator_1_0_0(); } if (id.getVersion().equals(VERSION_1_1_0)) { return new BinarySignator_1_1_0(); } throw new SignatorFactoryException("The version '" + id.getVersion() + "' of type '" + id.getType() + "' is not supported by this SignatorFactory. (id='" + id + "')"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ } if (id.getType().equals(TYPE_TEXTUAL)) { if (id.getVersion().equals(VERSION_1_0_0)) { return new TextualSignator_1_0_0(); } if (id.getVersion().equals(VERSION_1_1_0)) { return new TextualSignator_1_1_0(); } throw new SignatorFactoryException("The version '" + id.getVersion() + "' of type '" + id.getType() + "' is not supported by this SignatorFactory. (id='" + id + "')"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ } if (id.getType().equals(TYPE_DETACHED_TEXTUAL)) { if (id.getVersion().equals(VERSION_1_0_0)) { return new DetachedTextualSignator_1_0_0(); } throw new SignatorFactoryException("The version '" + id.getVersion() + "' of type '" + id.getType() + "' is not supported by this SignatorFactory. (id='" + id + "')"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ } throw new SignatorFactoryException("The type '" + id.getType() + "' is not supported by this SignatorFactory. (id='" + id + "')"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } }