aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwprinz <wprinz@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2008-05-30 09:57:51 +0000
committerwprinz <wprinz@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2008-05-30 09:57:51 +0000
commitee8b49fc0b85730d90e34a1fe81e4dbef49b36f7 (patch)
tree4d6f3f99ea301bb7df31c87d3976fb7807a4dbca
parent401225a15dd17795325d94fcfd151eac131edc8f (diff)
downloadpdf-as-3-ee8b49fc0b85730d90e34a1fe81e4dbef49b36f7.tar.gz
pdf-as-3-ee8b49fc0b85730d90e34a1fe81e4dbef49b36f7.tar.bz2
pdf-as-3-ee8b49fc0b85730d90e34a1fe81e4dbef49b36f7.zip
CR Unsichtbare Felder
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@265 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureTypeDefinition.java81
1 files changed, 74 insertions, 7 deletions
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureTypeDefinition.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureTypeDefinition.java
index c8d8818..30ec211 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureTypeDefinition.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureTypeDefinition.java
@@ -74,6 +74,22 @@ public class SignatureTypeDefinition implements Serializable
* The settings reader reference
*/
private SettingsReader settings_ = null;
+
+ /**
+ * List of (visible) field definitions.
+ */
+ protected List field_definitions_ = null;
+
+ /**
+ * List of invisible field definitions.
+ *
+ * <p>
+ * If empty, all definitions are visible.
+ * </p>
+ */
+ protected List invisible_field_definitions = null;
+
+
/**
* The constructor of the signature type definition. It reads the configured
@@ -94,6 +110,48 @@ public class SignatureTypeDefinition implements Serializable
readSigTable(SignatureTypes.MAIN_TABLE);
loadTypeDefinition();
readFieldDefinitions();
+ readInvisibleFieldDefinitions();
+ }
+
+ protected void readInvisibleFieldDefinitions()
+ {
+ this.invisible_field_definitions = new ArrayList();
+ for (int i = 0; i < SignatureTypes.REQUIRED_SIG_KEYS.length; i++)
+ {
+ String requiredKey = SignatureTypes.REQUIRED_SIG_KEYS[i];
+ if (!this.sortedKeys_.contains(requiredKey))
+ {
+ SignatureFieldDefinition sfd = readFieldDefinition(requiredKey);
+ this.invisible_field_definitions.add(sfd);
+ }
+ }
+ }
+
+ /**
+ * Returns the List of invisible field definitions, if any.
+ *
+ * <p>
+ * Invisible field definitions are the field definitions of required fields that are not explicitely specified in the signature profile.
+ * </p>
+ * <p>
+ * Note that the concept of invisible fields can only be used by binary signatures.
+ * </p>
+ *
+ * @return Returns the List of invisible field definitions, if any.
+ */
+ public List getInvisibleFieldDefinitions()
+ {
+ return this.invisible_field_definitions;
+ }
+
+ /**
+ * Tells, if the signature type is text-extractable, which means that all required fields are visible.
+ *
+ * @return Returns true, if the signature type is text-extractable.
+ */
+ public boolean isTextExtractable()
+ {
+ return this.invisible_field_definitions.isEmpty();
}
/**
@@ -367,7 +425,7 @@ public class SignatureTypeDefinition implements Serializable
protected String getSettingsKeyBase()
{
- return SignatureTypes.SIG_OBJ + type_;
+ return getSettingsKeyBase(type_);
}
/**
@@ -385,11 +443,7 @@ public class SignatureTypeDefinition implements Serializable
sfd.caption = this.settings_.getValueFromKey(getSettingsKeyBase() + ".key." + field_name);
sfd.value = this.settings_.getValueFromKey(getSettingsKeyBase() + type_ + ".value." + field_name);
sfd.placeholder_length = -1;
- String phlen_str = this.settings_.getValueFromKey(getSettingsKeyBase() + ".phlength." + field_name);
- if (phlen_str == null)
- {
- phlen_str = this.settings_.getValueFromKey("defaults.phlength." + field_name);
- }
+ String phlen_str = readPhLenStringFromSettings(this.settings_, this.type_, field_name);
if (phlen_str != null)
{
sfd.placeholder_length = Integer.parseInt(phlen_str);
@@ -398,7 +452,20 @@ public class SignatureTypeDefinition implements Serializable
return sfd;
}
- List field_definitions_ = null;
+ protected static String getSettingsKeyBase (String type)
+ {
+ return SignatureTypes.SIG_OBJ + type;
+ }
+
+ public static String readPhLenStringFromSettings(SettingsReader settings, String profile, String field_name)
+ {
+ String phlen_str = settings.getValueFromKey(getSettingsKeyBase(profile) + ".phlength." + field_name);
+ if (phlen_str == null)
+ {
+ phlen_str = settings.getValueFromKey("defaults.phlength." + field_name);
+ }
+ return phlen_str;
+ }
protected void readFieldDefinitions()
{