aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-10-16 10:59:52 +0200
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-10-16 10:59:52 +0200
commit7b105bafe5a1f4c01224c8ae0b820a478b09447f (patch)
treec201dc068bf2e01c5698493225186ae070d86149 /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor
parent3c4eac027bfd68bfce63a2eed010ccc2b7310802 (diff)
downloadpdf-as-4-7b105bafe5a1f4c01224c8ae0b820a478b09447f.tar.gz
pdf-as-4-7b105bafe5a1f4c01224c8ae0b820a478b09447f.tar.bz2
pdf-as-4-7b105bafe5a1f4c01224c8ae0b820a478b09447f.zip
added basic Preprocessor infrastructure, moved logging to logback
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor')
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor/DebugPreProcessor.java69
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor/PreProcessorCompare.java25
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor/PreProcessorLoader.java44
3 files changed, 138 insertions, 0 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor/DebugPreProcessor.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor/DebugPreProcessor.java
new file mode 100644
index 00000000..1a262aca
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor/DebugPreProcessor.java
@@ -0,0 +1,69 @@
+package at.gv.egiz.pdfas.lib.impl.preprocessor;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import at.gv.egiz.pdfas.common.exceptions.PDFASError;
+import at.gv.egiz.pdfas.lib.api.Configuration;
+import at.gv.egiz.pdfas.lib.api.preprocessor.PreProcessor;
+import at.gv.egiz.pdfas.lib.api.sign.SignParameter;
+import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter;
+
+public class DebugPreProcessor implements PreProcessor {
+
+ private static final Logger logger = LoggerFactory
+ .getLogger(DebugPreProcessor.class);
+
+ private static final String NAME = "Debug PreProcessor";
+
+ @Override
+ public void initialize(Configuration configuration) {
+ logger.debug("Initializing {}", getName());
+ }
+
+ private void listPPArguments(Map<String, String> map) {
+ if(map != null) {
+ logger.debug("pre processor arguments:");
+ Iterator<Entry<String, String>> entryIt = map.entrySet().iterator();
+ while(entryIt.hasNext()) {
+ Entry<String, String> entry = entryIt.next();
+ logger.debug(" {} => {}", entry.getKey(), entry.getValue());
+ }
+ } else {
+ logger.debug("No pre processor arguments");
+ }
+ }
+
+ @Override
+ public void sign(SignParameter parameter) throws PDFASError {
+ logger.debug("preprocessor signing ...");
+
+ listPPArguments(parameter.getPreprocessorArguments());
+
+ logger.debug("preprocessor signing done");
+ }
+
+ @Override
+ public void verify(VerifyParameter parameter) throws PDFASError {
+ logger.debug("preprocessor verifing ...");
+
+ listPPArguments(parameter.getPreprocessorArguments());
+
+ logger.debug("preprocessor verifing done");
+ }
+
+ @Override
+ public int registrationPosition() {
+ return -1;
+ }
+
+ @Override
+ public String getName() {
+ return NAME;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor/PreProcessorCompare.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor/PreProcessorCompare.java
new file mode 100644
index 00000000..ef716403
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor/PreProcessorCompare.java
@@ -0,0 +1,25 @@
+package at.gv.egiz.pdfas.lib.impl.preprocessor;
+
+import java.util.Comparator;
+
+import at.gv.egiz.pdfas.lib.api.preprocessor.PreProcessor;
+
+public class PreProcessorCompare implements Comparator<PreProcessor> {
+
+ @Override
+ public int compare(PreProcessor o1, PreProcessor o2) {
+ if(o1.registrationPosition() < 0 && o2.registrationPosition() < 0) {
+ // equal
+ return 0;
+ } else if(o1.registrationPosition() < 0) {
+ // o2 vor o1
+ return 1;
+ } else if(o2.registrationPosition() < 0) {
+ // o1 vor o2
+ return -1;
+ } else {
+ return Integer.compare(o1.registrationPosition(), o2.registrationPosition());
+ }
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor/PreProcessorLoader.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor/PreProcessorLoader.java
new file mode 100644
index 00000000..91218c82
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/preprocessor/PreProcessorLoader.java
@@ -0,0 +1,44 @@
+package at.gv.egiz.pdfas.lib.impl.preprocessor;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ServiceLoader;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import at.gv.egiz.pdfas.lib.api.Configuration;
+import at.gv.egiz.pdfas.lib.api.preprocessor.PreProcessor;
+
+public class PreProcessorLoader {
+
+ private static final Logger logger = LoggerFactory
+ .getLogger(PreProcessorLoader.class);
+
+ private static ServiceLoader<PreProcessor> preProcessorLoader = ServiceLoader.load(PreProcessor.class);
+
+ public static List<PreProcessor> getPreProcessors(Configuration configuration) {
+ logger.debug("building PreProcessors");
+
+ List<PreProcessor> processors = new ArrayList<PreProcessor>();
+ Iterator<PreProcessor> processorIterator = preProcessorLoader.iterator();
+
+ while(processorIterator.hasNext()) {
+ PreProcessor preProcessor = processorIterator.next();
+ logger.debug("Loading " + preProcessor.getName() + " [" + preProcessor.getClass().getName() + "]");
+ preProcessor.initialize(configuration);
+ logger.debug("Initialized " + preProcessor.getName());
+ processors.add(preProcessor);
+ logger.debug("Preprocessor added " + preProcessor.getName());
+ }
+
+ logger.debug("PreProcessors constructed");
+
+ Collections.sort(processors, new PreProcessorCompare());
+
+ logger.debug("PreProcessors sorted");
+ return processors;
+ }
+}