diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2013-09-26 15:49:26 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2013-09-26 15:49:26 +0200 |
commit | d85cbb74b8fe9c2bcc31a4b55ad17ae889d6b578 (patch) | |
tree | 216c51de424c24fdf7821d9047fdc266ce042b94 /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java | |
parent | fc44d4bcad00192f0df8f6086737b9b126094dcd (diff) | |
download | pdf-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.java | 64 |
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; + } + +} |