summaryrefslogtreecommitdiff
path: root/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/IntegerRangeValidator.java
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/IntegerRangeValidator.java')
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/IntegerRangeValidator.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/IntegerRangeValidator.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/IntegerRangeValidator.java
new file mode 100644
index 00000000..504cb482
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/IntegerRangeValidator.java
@@ -0,0 +1,58 @@
+package at.asit.pdfover.pdfsignator.profileproperties.validators;
+
+import at.asit.pdfover.pdfsignator.InvalidPropertyTypeException;
+import at.asit.pdfover.pdfsignator.InvalidPropertyValueException;
+import at.asit.pdfover.pdfsignator.profileproperties.IntegerProfileProperty;
+import at.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;
+
+public class IntegerRangeValidator extends PropertyValidator {
+
+ /**
+ * Maximum value of property
+ */
+ protected int max;
+
+ /**
+ * Minimum value of property
+ */
+ protected int min;
+
+ /**
+ * Constructor
+ * @param min The minimum allowed value
+ * @param max The maximum allowed value
+ */
+ public IntegerRangeValidator(int min, int max) {
+ this.max = max;
+ this.min = min;
+ }
+
+ @Override
+ public void validate(ProfileProperty property)
+ throws InvalidPropertyValueException, InvalidPropertyTypeException {
+ this.CheckPropertyType(property);
+
+ IntegerProfileProperty prop = (IntegerProfileProperty) property;
+
+ if(prop.GetValue() == null)
+ {
+ throw new InvalidPropertyValueException(property, "Value is not set!");
+ }
+
+ int value = prop.GetValue();
+
+ if(value < min || value > max) {
+ throw new InvalidPropertyValueException(property,
+ String.format("Value has to be between %d and %d", min, max));
+ }
+ }
+
+ @Override
+ public void CheckPropertyType(ProfileProperty property)
+ throws InvalidPropertyTypeException {
+ if(!(property instanceof IntegerProfileProperty)) {
+ throw new InvalidPropertyTypeException(property, this);
+ }
+ }
+
+}