aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2013-09-26 15:49:26 +0200
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2013-09-26 15:49:26 +0200
commitd85cbb74b8fe9c2bcc31a4b55ad17ae889d6b578 (patch)
tree216c51de424c24fdf7821d9047fdc266ce042b94 /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java
parentfc44d4bcad00192f0df8f6086737b9b126094dcd (diff)
downloadpdf-as-4-d85cbb74b8fe9c2bcc31a4b55ad17ae889d6b578.tar.gz
pdf-as-4-d85cbb74b8fe9c2bcc31a4b55ad17ae889d6b578.tar.bz2
pdf-as-4-d85cbb74b8fe9c2bcc31a4b55ad17ae889d6b578.zip
forgotten changes for initial code commit
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java')
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java64
1 files changed, 64 insertions, 0 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java
new file mode 100644
index 00000000..9052a7eb
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java
@@ -0,0 +1,64 @@
+package at.gv.egiz.pdfas.lib.impl.stamping;
+
+import at.gv.egiz.pdfas.common.settings.IProfileConstants;
+import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings;
+import at.gv.egiz.pdfas.lib.impl.PdfAsImpl;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Created with IntelliJ IDEA. User: afitzek Date: 9/11/13 Time: 11:11 AM To
+ * change this template use File | Settings | File Templates.
+ */
+public class ValueResolver implements IProfileConstants {
+
+ private static final Logger logger = LoggerFactory
+ .getLogger(ValueResolver.class);
+
+ private static final String defaultDateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
+
+ public static final String EXP_START = "${";
+ public static final String EXP_END = "}";
+
+ // TODO: Currently just for proof of concept ...
+ // Should support Reading Fields from Certificate and DATETIME
+
+ // TODO: Use status in real implementation to get currently needed
+ // informations...
+ public String resolve(String key, String value,
+ SignatureProfileSettings settings) {
+
+ logger.debug("Resolving value for key: " + key);
+ logger.debug("Resolving value with value: " + value);
+
+ if (value != null) {
+ if (value.startsWith(EXP_START) && value.endsWith(EXP_END)) {
+ // TODO: handle OGNL expression for key and value
+ // TODO: Here we need the certificate
+ CertificateResolver certificateResolver = new CertificateResolver(
+ null);
+ String exp = value.substring(EXP_START.length(), value.length()
+ - EXP_END.length());
+ return certificateResolver.resolve(key, exp, settings);
+ }
+ }
+
+ if (key.equals(SIG_DATE)) {
+ if(value == null) {
+ value = defaultDateFormat;
+ }
+ // Value holds the date format!
+ SimpleDateFormat formater = new SimpleDateFormat(value);
+ Calendar cal = Calendar.getInstance();
+ return formater.format(cal.getTime());
+ }
+
+ return value;
+ }
+
+}