diff options
author | tkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7> | 2013-04-10 18:51:24 +0000 |
---|---|---|
committer | tkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7> | 2013-04-10 18:51:24 +0000 |
commit | 782e41eee1f04f86bc895a95cd2d51353284987a (patch) | |
tree | 746d56e559d27f6a54a1ad63901dc5135d7128d2 /pdf-over-signator/src/main/java/at/asit/pdfover/signator/Signator.java | |
parent | 5793f0dc194ae3519de7a12808d99aa2a555cd73 (diff) | |
download | pdf-over-782e41eee1f04f86bc895a95cd2d51353284987a.tar.gz pdf-over-782e41eee1f04f86bc895a95cd2d51353284987a.tar.bz2 pdf-over-782e41eee1f04f86bc895a95cd2d51353284987a.zip |
Refactoring
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@11 174cde9d-5d70-4d2a-aa98-46368bc2aaf7
Diffstat (limited to 'pdf-over-signator/src/main/java/at/asit/pdfover/signator/Signator.java')
-rw-r--r-- | pdf-over-signator/src/main/java/at/asit/pdfover/signator/Signator.java | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/pdf-over-signator/src/main/java/at/asit/pdfover/signator/Signator.java b/pdf-over-signator/src/main/java/at/asit/pdfover/signator/Signator.java new file mode 100644 index 00000000..4ba0b981 --- /dev/null +++ b/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(); + } +} |