diff options
author | tkellner <tkellner@3a0b52a2-8410-0410-bc02-ff6273a87459> | 2012-08-07 14:52:00 +0000 |
---|---|---|
committer | tkellner <tkellner@3a0b52a2-8410-0410-bc02-ff6273a87459> | 2012-08-07 14:52:00 +0000 |
commit | 94bf81d31e74a209d60f2fd4f1f20448770bf1a0 (patch) | |
tree | ee0a3ebc6e659360cbf822bf428034c33527ce39 /trunk/pdf-over-signator/src/main/java/at/asit/pdfover/signator/Signator.java | |
parent | ef8b65e36085eb8d113620cb91ae1f0b2695eea2 (diff) | |
download | pdf-over-94bf81d31e74a209d60f2fd4f1f20448770bf1a0.tar.gz pdf-over-94bf81d31e74a209d60f2fd4f1f20448770bf1a0.tar.bz2 pdf-over-94bf81d31e74a209d60f2fd4f1f20448770bf1a0.zip |
Refactoring
git-svn-id: https://svn.iaik.tugraz.at/svn/egiz/prj/current/12PDF-OVER-4.0@12276 3a0b52a2-8410-0410-bc02-ff6273a87459
Diffstat (limited to 'trunk/pdf-over-signator/src/main/java/at/asit/pdfover/signator/Signator.java')
-rw-r--r-- | trunk/pdf-over-signator/src/main/java/at/asit/pdfover/signator/Signator.java | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/trunk/pdf-over-signator/src/main/java/at/asit/pdfover/signator/Signator.java b/trunk/pdf-over-signator/src/main/java/at/asit/pdfover/signator/Signator.java new file mode 100644 index 00000000..4ba0b981 --- /dev/null +++ b/trunk/pdf-over-signator/src/main/java/at/asit/pdfover/signator/Signator.java @@ -0,0 +1,58 @@ +package at.asit.pdfover.signator; + +import java.util.EnumMap; +import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * PDF Signator Interface + */ +public class Signator { + + private static Logger log = LoggerFactory.getLogger(Signator.class); + + /** + * List of available PDF signing libraries + */ + public enum Signers { + /** + * PDF-AS + */ + PDFAS + }; + + private static Map<Signers, SignerFactory> factoryMap; + + static { + factoryMap = new EnumMap<Signers, SignerFactory>(Signers.class); + + try { + Class<?> pdfAsClass = Class.forName("at.asit.pdfover.signer.pdfas.PDFASSignerFactory"); + SignerFactory factory = (SignerFactory)pdfAsClass.newInstance(); + registerSigner(Signers.PDFAS, factory); + } catch (ClassNotFoundException e) { + log.error("PDF Signer Factory not found", e); + throw new RuntimeException("PDF Signer Factory not found", e); + } catch (InstantiationException e) { + log.error("PDF Signer Factory could not be instantiated", e); + throw new RuntimeException("PDF Signer Factory could not be instantiated", e); + } catch (IllegalAccessException e) { + log.error("PDF Signer Factory could not accessed", e); + throw new RuntimeException("PDF Signer Factory could not accessed", e); + } + } + + private static void registerSigner(Signers signer, SignerFactory factory) { + factoryMap.put(signer, factory); + } + + /** + * Gets a PDF Signer according to the chosen signer library + * @param signer the chosen Signer type + * @return the PDF Signer + */ + public static Signer getSigner(Signers signer) { + return factoryMap.get(signer).createSigner(); + } +} |