summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2013-04-10 18:49:01 +0000
committertkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2013-04-10 18:49:01 +0000
commit3f5eda3adbea29aa8ad2cca5d300cef3f3a444a5 (patch)
treebf4948a55beed5a9ab64bc59caa1898703ce5e2b
parent93d4e1db036224b937fc03fdb3ef0ea7bbaa25a2 (diff)
downloadmocca-3f5eda3adbea29aa8ad2cca5d300cef3f3a444a5.tar.gz
mocca-3f5eda3adbea29aa8ad2cca5d300cef3f3a444a5.tar.bz2
mocca-3f5eda3adbea29aa8ad2cca5d300cef3f3a444a5.zip
Added Maven project for PDF-OVER 4.0 (Includes Spezification Diagramms)
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@2 174cde9d-5d70-4d2a-aa98-46368bc2aaf7
-rw-r--r--pdf-over/pdf-signer-interface/pom.xml14
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/DocumentSource.java5
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/InvalidPropertyTypeException.java16
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/InvalidPropertyValueException.java16
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/PDFSignator.java77
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignParameter.java118
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignResult.java71
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignatureDimension.java59
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignaturePosition.java100
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignatureProfile.java81
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/DateProfileProperty.java36
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/FileProfileProperty.java33
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/FloatProfileProperty.java30
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/IntegerProfileProperty.java31
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/ProfileProperty.java112
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/StringProfileProperty.java24
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/FloatRangeValidator.java57
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/IntegerRangeValidator.java58
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/PropertyValidator.java41
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/PropertyValidatorComparer.java16
-rw-r--r--pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/RegExValidator.java37
-rw-r--r--pdf-over/pdf-signer-interface/src/model/at.asit.pdfover.pdfsignator.ucd301
-rw-r--r--pdf-over/pdf-signer-pdf-as/pom.xml20
-rw-r--r--pdf-over/pom.xml72
24 files changed, 1425 insertions, 0 deletions
diff --git a/pdf-over/pdf-signer-interface/pom.xml b/pdf-over/pdf-signer-interface/pom.xml
new file mode 100644
index 00000000..6b70ebb1
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/pom.xml
@@ -0,0 +1,14 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>pdf-over</artifactId>
+ <groupId>at.a-sit</groupId>
+ <version>4.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>pdf-signer-interface</artifactId>
+ <name>PDFSignator Interface</name>
+ <version>0.1-SNAPSHOT</version>
+ <inceptionYear>2012</inceptionYear>
+ <url>http://www.buergerkarte.at/</url>
+</project> \ No newline at end of file
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/DocumentSource.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/DocumentSource.java
new file mode 100644
index 00000000..9343a981
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/DocumentSource.java
@@ -0,0 +1,5 @@
+package at.asit.pdfover.pdfsignator;
+
+public class DocumentSource {
+
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/InvalidPropertyTypeException.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/InvalidPropertyTypeException.java
new file mode 100644
index 00000000..8f9d54a9
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/InvalidPropertyTypeException.java
@@ -0,0 +1,16 @@
+package at.asit.pdfover.pdfsignator;
+
+import at.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;
+import at.asit.pdfover.pdfsignator.profileproperties.validators.PropertyValidator;
+
+public class InvalidPropertyTypeException extends Exception {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6174277563400848906L;
+
+ public InvalidPropertyTypeException(ProfileProperty property, PropertyValidator validator) {
+ super(String.format("Cannot add validator: %s to Property: %s (incompatible)",
+ validator.getClass().getName(), property.getClass().getName()));
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/InvalidPropertyValueException.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/InvalidPropertyValueException.java
new file mode 100644
index 00000000..3b3d96e9
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/InvalidPropertyValueException.java
@@ -0,0 +1,16 @@
+package at.asit.pdfover.pdfsignator;
+
+import at.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;
+
+
+public class InvalidPropertyValueException extends Exception {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3823266882732616374L;
+
+ public InvalidPropertyValueException(ProfileProperty property, String message) {
+ super(String.format("Invalid value for: %s: %s", property.GetKey(), message));
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/PDFSignator.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/PDFSignator.java
new file mode 100644
index 00000000..1801e608
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/PDFSignator.java
@@ -0,0 +1,77 @@
+package at.asit.pdfover.pdfsignator;
+
+import java.util.HashMap;
+
+/**
+ * PDF Signator base Class
+ * This class should be extended to support PDF-AS and PADES.
+ */
+public abstract class PDFSignator {
+
+ /**
+ * Map to store profiles
+ */
+ protected HashMap<String, SignatureProfile> profiles = new HashMap<String, SignatureProfile>();
+
+ /**
+ * Perfom signature creation
+ * @param parameter The signature parameters
+ * @return The signing result
+ */
+ public abstract SignResult Sign(SignParameter parameter);
+
+ /**
+ * Creates new signing profile
+ * @param base The profile id of the base profile
+ * @param profileID The id of the new profile
+ * @return The new Profile
+ */
+ public abstract SignatureProfile CreateNewProfile(String base, String profileID);
+
+ /**
+ * Creates new signing profile
+ * @param base The base profile
+ * @param profileID The id of the new profile
+ * @return The new Profile
+ */
+ public abstract SignatureProfile CreateNewProfile(SignatureProfile base, String profileID);
+
+ /**
+ * Creates new signing profile
+ * @param profileID The id of the new profile
+ * @return The new Profile
+ */
+ public abstract SignatureProfile CreateNewProfile(String profileID);
+
+ /**
+ * Returns Profile object for given profile id
+ * @param profileID The profile id
+ * @return The requested Profile
+ */
+ public SignatureProfile GetProfile(String profileID) {
+ if(this.profiles.containsKey(profileID)) {
+ // TODO: Think about handing out a copy of the profile to keep default values ...
+ return this.profiles.get(profileID);
+ }
+
+ // TODO: throw Exception
+ return null;
+ }
+
+ /**
+ * Get all available profiles
+ * @return Array containing all knwon profiles
+ */
+ public SignatureProfile[] GetAvailableProfiles() {
+ // TODO: Think about handing out a copy of the profile to keep default values ...
+ return this.profiles.values().toArray(new SignatureProfile[0]);
+ }
+
+ /**
+ * Gets all available profile ids
+ * @return Array containing all known profile ids
+ */
+ public String[] GetAvailableProfileIDs() {
+ return this.profiles.keySet().toArray(new String[0]);
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignParameter.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignParameter.java
new file mode 100644
index 00000000..3f0f2b6f
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignParameter.java
@@ -0,0 +1,118 @@
+package at.asit.pdfover.pdfsignator;
+
+/**
+ * The Signature Parameter
+ */
+public class SignParameter {
+
+ /**
+ * The Signature Position
+ * @uml.property name="signaturePosition"
+ * @uml.associationEnd multiplicity="(1 1)" aggregation="shared" inverse="signParameter:at.asit.pdfover.pdfsignator.SignaturePosition"
+ */
+ protected SignaturePosition signaturePosition = null;
+
+ /**
+ * Getter of the property <tt>signaturePosition</tt>
+ * @return Returns the signaturePosition.
+ */
+ public SignaturePosition GetSignaturePosition() {
+ return signaturePosition;
+ }
+
+ /**
+ * Setter of the property <tt>signaturePosition</tt>
+ * @param signaturePosition The signaturePosition to set.
+ */
+ public void SetSignaturePosition(SignaturePosition signaturePosition) {
+ this.signaturePosition = signaturePosition;
+ }
+
+ /**
+ * The Signature Profile
+ * @uml.property name="signatureProfile"
+ * @uml.associationEnd multiplicity="(1 1)" aggregation="shared" inverse="signParameter:at.asit.pdfover.pdfsignator.SignatureProfile"
+ */
+ protected SignatureProfile signatureProfile = null;
+
+ /**
+ * Getter of the property <tt>signatureProfile</tt>
+ * @return Returns the signatureProfile.
+ */
+ public SignatureProfile GetSignatureProfile() {
+ return signatureProfile;
+ }
+
+ /**
+ * Setter of the property <tt>signatureProfile</tt>
+ * @param signatureProfile The signatureProfile to set.
+ */
+ public void SetSignatureProfile(SignatureProfile signatureProfile) {
+ this.signatureProfile = signatureProfile;
+ }
+
+ /**
+ * The signature Device
+ */
+ protected String signatureDevice = null;
+
+ /**
+ * Getter of the property <tt>signatureDevice</tt>
+ * @return Returns the signatureDevice.
+ */
+ public String GetSignatureDevice() {
+ return signatureDevice;
+ }
+
+ /**
+ * Setter of the property <tt>signatureDevice</tt>
+ * @param value The signatureDevice to set.
+ */
+ public void SetSignatureDevice(String value) {
+ this.signatureDevice = value;
+ }
+
+ /**
+ * The signature Device
+ */
+ protected String KeyIdentifier = null;
+
+ /**
+ * Getter of the property <tt>KeyIdentifier</tt>
+ * @return Returns the KeyIdentifier.
+ */
+ public String GetKeyIdentifier() {
+ return KeyIdentifier;
+ }
+
+ /**
+ * Setter of the property <tt>KeyIdentifier</tt>
+ * @param value The KeyIdentifier to set.
+ */
+ public void SetKeyIdentifier(String value) {
+ this.KeyIdentifier = value;
+ }
+
+ /**
+ * The signature Device
+ *
+ * @uml.associationEnd multiplicity="(1 1)" aggregation="shared" inverse="signParameter:at.asit.pdfover.pdfsignator.DocumentSource"
+ */
+ protected DocumentSource documentSource = null;
+
+ /**
+ * Getter of the property <tt>documentSource</tt>
+ * @return Returns the documentSource.
+ */
+ public DocumentSource GetDocumentSource() {
+ return documentSource;
+ }
+
+ /**
+ * Setter of the property <tt>documentSource</tt>
+ * @param value The documentSource to set.
+ */
+ public void SetDocumentSource(DocumentSource value) {
+ this.documentSource = value;
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignResult.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignResult.java
new file mode 100644
index 00000000..56d98952
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignResult.java
@@ -0,0 +1,71 @@
+package at.asit.pdfover.pdfsignator;
+
+import javax.security.cert.Certificate;
+
+public class SignResult {
+
+ /**
+ * The position of the signatur
+ * @uml.associationEnd multiplicity="(1 1)" aggregation="composite" inverse="signResult:at.asit.pdfover.pdfsignator.SignaturePosition"
+ */
+ protected SignaturePosition signaturePosition = null;
+
+ /**
+ * Getter of the property <tt>signaturePosition</tt>
+ * @return Returns the signaturePosition.
+ */
+ public SignaturePosition GetSignaturePosition() {
+ return signaturePosition;
+ }
+
+ /**
+ * Setter of the property <tt>signaturePosition</tt>
+ * @param signaturePosition The signaturePosition to set.
+ */
+ public void SetSignaturePosition(SignaturePosition signaturePosition) {
+ this.signaturePosition = signaturePosition;
+ }
+
+ /**
+ * The signed Document
+ * @uml.associationEnd multiplicity="(1 1)" aggregation="shared" inverse="signResult:at.asit.pdfover.pdfsignator.DocumentSource"
+ */
+ protected DocumentSource documentSource = null;
+
+ /**
+ * Gets the signed Document
+ * @return Returns the documentSource.
+ */
+ public DocumentSource GetDocumentSource() {
+ return documentSource;
+ }
+
+ /**
+ * Setter of the property <tt>documentSource</tt>
+ * @param documentSource The documentSource to set.
+ */
+ public void SetDocumentSource(DocumentSource documentSource) {
+ this.documentSource = documentSource;
+ }
+
+ /**
+ * The signer certificate
+ */
+ protected Certificate signerCertificate;
+
+ /**
+ * Sets the signer certificate
+ * @param cert The signer certificate
+ */
+ public void SetSignerCertificate(Certificate cert) {
+ this.signerCertificate = cert;
+ }
+
+ /**
+ * Gets the signer certificate
+ * @return The signer x509 certificate
+ */
+ public Certificate SetSignerCertificate() {
+ return this.signerCertificate;
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignatureDimension.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignatureDimension.java
new file mode 100644
index 00000000..133f4f74
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignatureDimension.java
@@ -0,0 +1,59 @@
+package at.asit.pdfover.pdfsignator;
+
+/**
+ * The Dimensions of the visible signature block
+ */
+public class SignatureDimension {
+
+ /**
+ * The visible Signature block width
+ */
+ protected int width;
+
+ /**
+ * The visible Signature block height
+ */
+ protected int height;
+
+ /**
+ * Sets the width for the dimension
+ * @param value
+ */
+ public void SetWidth(int value) {
+ this.width = value;
+ }
+
+ /**
+ * Constructor
+ * @param width The width of the signature block
+ * @param height The height of the signature block
+ */
+ public SignatureDimension(int width, int height) {
+ this.width = width;
+ this.height = height;
+ }
+
+ /**
+ * Gets the width of the visible Signature block
+ * @return
+ */
+ public int GetWidth() {
+ return this.width;
+ }
+
+ /**
+ * Sets the height for the dimension
+ * @param value
+ */
+ public void SetHeight(int value) {
+ this.height = value;
+ }
+
+ /**
+ * Gets the height of the visible Signature block
+ * @return
+ */
+ public int GetHeight() {
+ return this.height;
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignaturePosition.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignaturePosition.java
new file mode 100644
index 00000000..48b320b3
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignaturePosition.java
@@ -0,0 +1,100 @@
+package at.asit.pdfover.pdfsignator;
+
+
+/**
+ * Represents the position of a visible signature block
+ * @author afitzek
+ */
+public class SignaturePosition {
+ /**
+ * The x value of the position
+ */
+ protected int x = 0;
+
+ /**
+ * The y value of the position
+ */
+ protected int y = 0;
+
+ /**
+ * The page value of the position
+ */
+ protected int page = 1;
+
+ /**
+ * Default constructor
+ */
+ public SignaturePosition() {
+ }
+
+ /**
+ * X - Y Constructor Page = 1
+ * @param x The x value of the position
+ * @param y The y value of the position
+ */
+ public SignaturePosition(int x, int y) {
+ this.x = x;
+ this.y = y;
+ }
+
+ /**
+ * Constructor
+ * @param x The x value of the position
+ * @param y The y value of the position
+ * @param page The page value of the position
+ */
+ public SignaturePosition(int x, int y, int page) {
+ this.x = x;
+ this.y = y;
+ this.page = page;
+ }
+
+ /**
+ * Sets X value of position
+ * @param value the new x value
+ */
+ public void SetX(int value) {
+ this.x = value;
+ }
+
+ /**
+ * Gets the X value of the position
+ * @return int the x value of the position
+ */
+ public int GetX() {
+ return this.x;
+ }
+
+ /**
+ * Sets Y value of position
+ * @param value the new y value
+ */
+ public void SetY(int value) {
+ this.y = value;
+ }
+
+ /**
+ * Gets the Y value of the position
+ * @return int the y value of the position
+ */
+ public int GetY() {
+ return this.y;
+ }
+
+ /**
+ * Sets Page value of position
+ * @param value the new page value
+ */
+ public void SetPage(int value) {
+ this.page = value;
+ }
+
+ /**
+ * Gets the Page value of the position
+ * @return int the page value of the position
+ */
+ public int GetPage() {
+ return this.page;
+ }
+
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignatureProfile.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignatureProfile.java
new file mode 100644
index 00000000..84c1023d
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/SignatureProfile.java
@@ -0,0 +1,81 @@
+package at.asit.pdfover.pdfsignator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import at.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;
+
+/**
+ * Represents a Signature profile
+ * @author afitzek
+ */
+public abstract class SignatureProfile {
+
+ /**
+ * The profile ID
+ */
+ protected String profileID;
+
+ /**
+ * The Profile properties
+ * @uml.property name="profileProperty"
+ * @uml.associationEnd multiplicity="(0 -1)" ordering="true" aggregation="shared" inverse="signatureProfile:at.asit.pdfover.pdfsignator.profileproperties.ProfileProperty"
+ *
+ */
+ protected List<ProfileProperty> properties = new ArrayList<ProfileProperty>();
+
+ /**
+ * Gets the profile ID
+ * @return Returns the profileID.
+ */
+ public String GetProfileID() {
+ return profileID;
+ }
+
+ /**
+ * Adds a property to this profile
+ * @param property
+ */
+ public void AddProperty(ProfileProperty property) {
+
+ ProfileProperty replace = this.GetProperty(property.GetKey());
+
+ if(replace != null)
+ {
+ this.properties.remove(replace);
+ replace = null;
+ }
+
+ this.properties.add(property);
+ }
+
+ /**
+ * Gets a property by its key
+ * @param key The property key
+ * @return The ProfileProperty or null if not available
+ */
+ public ProfileProperty GetProperty(String key) {
+ ProfileProperty find = null;
+ for(ProfileProperty available : this.properties) {
+ find = available;
+ if(find.GetKey().equals(key)) {
+ return find;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Gets the Signature Dimension
+ * @return
+ */
+ public abstract SignatureDimension GetSignatureDimension();
+
+ /**
+ * Gets available Properties for this Profile
+ * @return
+ */
+ public ProfileProperty[] GetAvailableProperties() {
+ return this.properties.toArray(new ProfileProperty[0]);
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/DateProfileProperty.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/DateProfileProperty.java
new file mode 100644
index 00000000..ac5df52a
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/DateProfileProperty.java
@@ -0,0 +1,36 @@
+package at.asit.pdfover.pdfsignator.profileproperties;
+
+import java.util.Date;
+
+import at.asit.pdfover.pdfsignator.InvalidPropertyTypeException;
+import at.asit.pdfover.pdfsignator.InvalidPropertyValueException;
+
+/**
+ * A Date Property
+ */
+public class DateProfileProperty extends ProfileProperty {
+
+ /**
+ * Date value of property
+ */
+ protected Date dvalue = null;
+
+ /**
+ * Sets the date value of the Property
+ * @param value The date value
+ * @throws InvalidPropertyValueException
+ * @throws InvalidPropertyTypeException
+ */
+ public void SetValue(Date value) throws InvalidPropertyValueException, InvalidPropertyTypeException {
+ this.SetTextValue(value.toString());
+ this.dvalue = value;
+ }
+
+ /**
+ * Gets the date value
+ * @return the date value of the property
+ */
+ public Date GetValue() {
+ return this.dvalue;
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/FileProfileProperty.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/FileProfileProperty.java
new file mode 100644
index 00000000..46c5cd12
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/FileProfileProperty.java
@@ -0,0 +1,33 @@
+package at.asit.pdfover.pdfsignator.profileproperties;
+
+import java.io.File;
+
+import at.asit.pdfover.pdfsignator.InvalidPropertyTypeException;
+import at.asit.pdfover.pdfsignator.InvalidPropertyValueException;
+
+public class FileProfileProperty extends ProfileProperty {
+
+ /**
+ * File value of property
+ */
+ protected File fvalue = null;
+
+ /**
+ * Sets the file value of the Property
+ * @param value The file value
+ * @throws InvalidPropertyValueException
+ * @throws InvalidPropertyTypeException
+ */
+ public void SetValue(File value) throws InvalidPropertyValueException, InvalidPropertyTypeException {
+ this.SetTextValue(value.getAbsolutePath());
+ this.fvalue = value;
+ }
+
+ /**
+ * Gets the file value
+ * @return the file value of the property
+ */
+ public File GetValue() {
+ return this.fvalue;
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/FloatProfileProperty.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/FloatProfileProperty.java
new file mode 100644
index 00000000..51c4089e
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/FloatProfileProperty.java
@@ -0,0 +1,30 @@
+package at.asit.pdfover.pdfsignator.profileproperties;
+
+import at.asit.pdfover.pdfsignator.InvalidPropertyTypeException;
+import at.asit.pdfover.pdfsignator.InvalidPropertyValueException;
+
+public class FloatProfileProperty extends ProfileProperty {
+ /**
+ * Float value of property
+ */
+ protected Float fvalue = null;
+
+ /**
+ * Sets the float value of the Property
+ * @param value The float value
+ * @throws InvalidPropertyValueException
+ * @throws InvalidPropertyTypeException
+ */
+ public void SetValue(float value) throws InvalidPropertyValueException, InvalidPropertyTypeException {
+ this.SetTextValue(Float.toString(value));
+ this.fvalue = value;
+ }
+
+ /**
+ * Gets the float value
+ * @return the float value of the property
+ */
+ public Float GetValue() {
+ return this.fvalue;
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/IntegerProfileProperty.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/IntegerProfileProperty.java
new file mode 100644
index 00000000..7bb91226
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/IntegerProfileProperty.java
@@ -0,0 +1,31 @@
+package at.asit.pdfover.pdfsignator.profileproperties;
+
+import at.asit.pdfover.pdfsignator.InvalidPropertyTypeException;
+import at.asit.pdfover.pdfsignator.InvalidPropertyValueException;
+
+public class IntegerProfileProperty extends ProfileProperty {
+
+ /**
+ * Integer value of property
+ */
+ protected Integer ivalue = null;
+
+ /**
+ * Sets the integer value of the Property
+ * @param value The integer value
+ * @throws InvalidPropertyValueException
+ * @throws InvalidPropertyTypeException
+ */
+ public void SetValue(int value) throws InvalidPropertyValueException, InvalidPropertyTypeException {
+ this.SetTextValue(Integer.toString(value));
+ this.ivalue = value;
+ }
+
+ /**
+ * Gets the integer value
+ * @return the integer value of the property
+ */
+ public Integer GetValue() {
+ return this.ivalue;
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/ProfileProperty.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/ProfileProperty.java
new file mode 100644
index 00000000..ebd247d6
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/ProfileProperty.java
@@ -0,0 +1,112 @@
+package at.asit.pdfover.pdfsignator.profileproperties;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import at.asit.pdfover.pdfsignator.InvalidPropertyTypeException;
+import at.asit.pdfover.pdfsignator.InvalidPropertyValueException;
+import at.asit.pdfover.pdfsignator.profileproperties.validators.PropertyValidator;
+import at.asit.pdfover.pdfsignator.profileproperties.validators.PropertyValidatorComparer;
+
+/**
+ * Defines a Profile Property
+ */
+public abstract class ProfileProperty {
+
+ /**
+ * Is this property optional
+ */
+ protected boolean optional;
+
+ /**
+ * The value of the property
+ */
+ private String value;
+
+ /**
+ * The key of the property
+ */
+ private String key;
+
+ /**
+ * The list of PropertyValidator
+ * @uml.property name="propertyValidator"
+ * @uml.associationEnd multiplicity="(0 -1)" ordering="true" aggregation="shared" inverse="profileProperty:at.asit.pdfover.pdfsignator.profileproperties.validators.PropertyValidator"
+ */
+ protected List<PropertyValidator> validators = new ArrayList<PropertyValidator>();
+
+ /**
+ * Validates the ProfileProperty
+ * @throws InvalidPropertyValueException
+ * @throws InvalidPropertyTypeException
+ */
+ protected void Validate() throws InvalidPropertyValueException, InvalidPropertyTypeException {
+ for(PropertyValidator validator : validators) {
+ validator.validate(this);
+ }
+ }
+
+ /**
+ * Adds a new PropertyValidator to this Property and sorts the validators according to their priority
+ * @param validator
+ * @throws InvalidPropertyTypeException
+ */
+ public void AddValidator(PropertyValidator validator) throws InvalidPropertyTypeException {
+ validator.CheckPropertyType(this);
+ validators.add(validator);
+ Collections.sort(validators, new PropertyValidatorComparer());
+ }
+
+ /**
+ * Sets if the property is optional
+ * @param value The new optional value
+ */
+ public void SetOptional(boolean value) {
+ this.optional = value;
+ }
+
+ /**
+ * Gets if the Property is Optional
+ * @return Is the property optional
+ */
+ public boolean GetOptional() {
+ return this.optional;
+ }
+
+ /**
+ * Sets the string value of the property and validates the Property
+ * (All subclasses should set the value via this method!)
+ * @param value The new value
+ * @throws InvalidPropertyValueException
+ * @throws InvalidPropertyTypeException
+ */
+ public void SetTextValue(String value) throws InvalidPropertyValueException, InvalidPropertyTypeException {
+ this.value = value;
+ this.Validate();
+ }
+
+ /**
+ * Gets the property text value
+ * @return The property text value
+ */
+ public String GetTextValue() {
+ return this.value;
+ }
+
+ /**
+ * Sets the propety key
+ * @param value The new property key
+ */
+ public void SetKey(String value) {
+ this.key = value;
+ }
+
+ /**
+ * Gets the property Key
+ * @return The property key
+ */
+ public String GetKey() {
+ return this.key;
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/StringProfileProperty.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/StringProfileProperty.java
new file mode 100644
index 00000000..35d903af
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/StringProfileProperty.java
@@ -0,0 +1,24 @@
+package at.asit.pdfover.pdfsignator.profileproperties;
+
+import at.asit.pdfover.pdfsignator.InvalidPropertyTypeException;
+import at.asit.pdfover.pdfsignator.InvalidPropertyValueException;
+
+public class StringProfileProperty extends ProfileProperty {
+ /**
+ * Sets the string value of the Property
+ * @param value The string value
+ * @throws InvalidPropertyValueException
+ * @throws InvalidPropertyTypeException
+ */
+ public void SetValue(String value) throws InvalidPropertyValueException, InvalidPropertyTypeException {
+ this.SetTextValue(value);
+ }
+
+ /**
+ * Gets the string value
+ * @return the string value of the property
+ */
+ public String GetValue() {
+ return this.GetTextValue();
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/FloatRangeValidator.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/FloatRangeValidator.java
new file mode 100644
index 00000000..8cca9230
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/FloatRangeValidator.java
@@ -0,0 +1,57 @@
+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.FloatProfileProperty;
+import at.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;
+
+public class FloatRangeValidator extends PropertyValidator {
+
+ /**
+ * The maximum value
+ */
+ protected float max;
+
+ /**
+ * The minimum value
+ */
+ protected float min;
+
+ /**
+ * Constructor
+ * @param min The minimum allowed value
+ * @param max The maximum allowed value
+ */
+ public FloatRangeValidator(float min, float max) {
+ this.max = max;
+ this.min = min;
+ }
+
+ @Override
+ public void validate(ProfileProperty property)
+ throws InvalidPropertyValueException, InvalidPropertyTypeException {
+ this.CheckPropertyType(property);
+
+ FloatProfileProperty prop = (FloatProfileProperty) property;
+
+ if (prop.GetValue() == null) {
+ throw new InvalidPropertyValueException(property,
+ "Value is not set!");
+ }
+
+ float value = prop.GetValue();
+
+ if (value < min || value > max) {
+ throw new InvalidPropertyValueException(property, String.format(
+ "Value has to be between %f and %f", min, max));
+ }
+ }
+
+ @Override
+ public void CheckPropertyType(ProfileProperty property)
+ throws InvalidPropertyTypeException {
+ if (!(property instanceof FloatProfileProperty)) {
+ throw new InvalidPropertyTypeException(property, this);
+ }
+ }
+}
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);
+ }
+ }
+
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/PropertyValidator.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/PropertyValidator.java
new file mode 100644
index 00000000..8da9babc
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/PropertyValidator.java
@@ -0,0 +1,41 @@
+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.ProfileProperty;
+
+/**
+ * Validates the value of a property
+ */
+public abstract class PropertyValidator {
+
+ /**
+ * The priority of this property should determine the order of validations
+ */
+ protected int priority = 1;
+
+ /**
+ * Called to validate the value of the given property and throws an InvalidPropertyValueException if value is invalid
+ * @param propety
+ * @throws InvalidPropertyValueException
+ */
+ public abstract void validate(ProfileProperty property) throws InvalidPropertyValueException, InvalidPropertyTypeException;
+
+ /**
+ * Sets the priority of this validator
+ * @param value The new priority
+ */
+ public void SetPriority(int value) {
+ this.priority = value;
+ }
+
+ /**
+ * Gets the priority of this validator
+ * @return The priority of this validator
+ */
+ public int GetPriority() {
+ return this.priority;
+ }
+
+ public abstract void CheckPropertyType(ProfileProperty property) throws InvalidPropertyTypeException;
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/PropertyValidatorComparer.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/PropertyValidatorComparer.java
new file mode 100644
index 00000000..76c7f0e2
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/PropertyValidatorComparer.java
@@ -0,0 +1,16 @@
+package at.asit.pdfover.pdfsignator.profileproperties.validators;
+
+import java.util.Comparator;
+
+/**
+ * Compares the Priority of two PropertyValidators
+ * @author afitzek
+ *
+ */
+public class PropertyValidatorComparer implements Comparator<PropertyValidator> {
+
+ public int compare(PropertyValidator o1, PropertyValidator o2) {
+ return o1.GetPriority() - o2.GetPriority();
+ }
+
+}
diff --git a/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/RegExValidator.java b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/RegExValidator.java
new file mode 100644
index 00000000..9ca8d113
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsignator/profileproperties/validators/RegExValidator.java
@@ -0,0 +1,37 @@
+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.ProfileProperty;
+
+public class RegExValidator extends PropertyValidator {
+
+ /**
+ * The regex value
+ */
+ protected String regex;
+
+ /**
+ * Constructor
+ * @param regex The regex to check
+ */
+ public RegExValidator(String regex) {
+ this.regex = regex;
+ }
+
+ @Override
+ public void validate(ProfileProperty property)
+ throws InvalidPropertyValueException, InvalidPropertyTypeException {
+
+ if(!property.GetTextValue().matches(this.regex)) {
+ throw new InvalidPropertyValueException(property, String.format(
+ "Value is invalid!"));
+ }
+ }
+
+ @Override
+ public void CheckPropertyType(ProfileProperty property)
+ throws InvalidPropertyTypeException {
+ // Is valid on all Property Types
+ }
+}
diff --git a/pdf-over/pdf-signer-interface/src/model/at.asit.pdfover.pdfsignator.ucd b/pdf-over/pdf-signer-interface/src/model/at.asit.pdfover.pdfsignator.ucd
new file mode 100644
index 00000000..49f5a6c7
--- /dev/null
+++ b/pdf-over/pdf-signer-interface/src/model/at.asit.pdfover.pdfsignator.ucd
@@ -0,0 +1,301 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<editmodel:ClassDiagramEditModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:editmodel="editmodel.xmi" xmlns:options="options.xmi" size="2193,949" id="at.asit.pdfover.pdfsignator" metadata="uml2-1.0" initialized="true" zoom="0.6744639376218323" scrolledY="-44" tag="1000" key="32303037303533312D31303030205044465369676E61746F72205363686E6974747374656C6C652F616E6479">
+ <children xsi:type="editmodel:ClassEditModel" name="SignaturePosition" location="535,329" size="317,266" id="at.asit.pdfover.pdfsignator/SignaturePosition" runTimeClassModel="GetPage(),SignaturePosition(),GetX(),SignaturePosition(III),SetPage(I),page,SetX(I),SignaturePosition(II),y,SetY(I),GetY(),x">
+ <children xsi:type="editmodel:CompartmentEditModel" size="69,54">
+ <children xsi:type="editmodel:AttributeEditModel" name="page" id="at.asit.pdfover.pdfsignator/SignaturePosition#page"/>
+ <children xsi:type="editmodel:AttributeEditModel" name="x" id="at.asit.pdfover.pdfsignator/SignaturePosition#x"/>
+ <children xsi:type="editmodel:AttributeEditModel" name="y" id="at.asit.pdfover.pdfsignator/SignaturePosition#y"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="294,162">
+ <children xsi:type="editmodel:MethodEditModel" name="GetPage" id="at.asit.pdfover.pdfsignator/SignaturePosition#GetPage()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetX" id="at.asit.pdfover.pdfsignator/SignaturePosition#GetX()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetY" id="at.asit.pdfover.pdfsignator/SignaturePosition#GetY()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetPage" id="at.asit.pdfover.pdfsignator/SignaturePosition#SetPage(I)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetX" id="at.asit.pdfover.pdfsignator/SignaturePosition#SetX(I)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetY" id="at.asit.pdfover.pdfsignator/SignaturePosition#SetY(I)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SignaturePosition" id="at.asit.pdfover.pdfsignator/SignaturePosition#SignaturePosition(II)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SignaturePosition" id="at.asit.pdfover.pdfsignator/SignaturePosition#SignaturePosition(III)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SignaturePosition" id="at.asit.pdfover.pdfsignator/SignaturePosition#SignaturePosition()"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator/SignaturePosition@signaturePosition+at.asit.pdfover.pdfsignator/SignParameter@signParameter" source="//@children.0" target="//@children.4" targetEnd="//@children.0/@sourceConnections.0/@children.1" label="//@children.0/@sourceConnections.0/@children.2" sourceEnd="//@children.0/@sourceConnections.0/@children.0" connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:AssociationEndEditModel" name="signaturePosition" location="317,14" id="at.asit.pdfover.pdfsignator/SignaturePosition@signaturePosition+at.asit.pdfover.pdfsignator/SignParameter@signParameter|at.asit.pdfover.pdfsignator/SignaturePosition#signaturePosition" attachSource="true" multiplicityLabel="//@children.0/@sourceConnections.0/@children.0/@children.1" roleLabel="//@children.0/@sourceConnections.0/@children.0/@children.0" aggregationKind="Aggregration" navigable="true">
+ <children xsi:type="editmodel:LabelEditModel" name=" # signaturePosition" location="858,322" size="116,13" anchorKind="FirstPart"/>
+ <children xsi:type="editmodel:LabelEditModel" name="1" location="858,349" size="7,13" anchorKind="FirstPart"/>
+ </children>
+ <children xsi:type="editmodel:AssociationEndEditModel" name="signParameter" location="0,268" id="at.asit.pdfover.pdfsignator/SignaturePosition@signaturePosition+at.asit.pdfover.pdfsignator/SignParameter@signParameter|at.asit.pdfover.pdfsignator/SignParameter#signParameter"/>
+ <children xsi:type="editmodel:WireLabelEditModel" size="0,13" anchorKind="MiddlePart"/>
+ </sourceConnections>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator/SignaturePosition@signaturePosition+at.asit.pdfover.pdfsignator/SignResult@signResult" source="//@children.0" target="//@children.12" targetEnd="//@children.0/@sourceConnections.1/@children.1" label="//@children.0/@sourceConnections.1/@children.2" sourceEnd="//@children.0/@sourceConnections.1/@children.0" connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:AssociationEndEditModel" name="signaturePosition" location="0,12" id="at.asit.pdfover.pdfsignator/SignaturePosition@signaturePosition+at.asit.pdfover.pdfsignator/SignResult@signResult|at.asit.pdfover.pdfsignator/SignaturePosition#signaturePosition" attachSource="true" multiplicityLabel="//@children.0/@sourceConnections.1/@children.0/@children.1" roleLabel="//@children.0/@sourceConnections.1/@children.0/@children.0" aggregationKind="Composition" navigable="true">
+ <children xsi:type="editmodel:LabelEditModel" name=" # signaturePosition" location="410,319" size="116,13" anchorKind="FirstPart"/>
+ <children xsi:type="editmodel:LabelEditModel" name="1" location="519,346" size="7,13" anchorKind="FirstPart"/>
+ </children>
+ <children xsi:type="editmodel:AssociationEndEditModel" name="signResult" location="394,162" id="at.asit.pdfover.pdfsignator/SignaturePosition@signaturePosition+at.asit.pdfover.pdfsignator/SignResult@signResult|at.asit.pdfover.pdfsignator/SignResult#signResult"/>
+ <children xsi:type="editmodel:WireLabelEditModel" size="0,13" anchorKind="MiddlePart"/>
+ </sourceConnections>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" name="SignatureProfile" location="1034,412" size="312,176" id="at.asit.pdfover.pdfsignator/SignatureProfile" runTimeClassModel="GetProperty(Ljava.lang.String;),profileID,GetAvailableProperties(),profileProperty,GetProfileID(),AddProperty(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;),GetSignatureDimension()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="227,36">
+ <children xsi:type="editmodel:AttributeEditModel" name="profileID" id="at.asit.pdfover.pdfsignator/SignatureProfile#profileID"/>
+ <children xsi:type="editmodel:AttributeEditModel" name="profileProperty" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty@profileProperty+at.asit.pdfover.pdfsignator/SignatureProfile@signatureProfile|at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty#profileProperty"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="289,90">
+ <children xsi:type="editmodel:MethodEditModel" name="AddProperty" id="at.asit.pdfover.pdfsignator/SignatureProfile#AddProperty(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetAvailableProperties" id="at.asit.pdfover.pdfsignator/SignatureProfile#GetAvailableProperties()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetProfileID" id="at.asit.pdfover.pdfsignator/SignatureProfile#GetProfileID()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetProperty" id="at.asit.pdfover.pdfsignator/SignatureProfile#GetProperty(Ljava.lang.String;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetSignatureDimension" id="at.asit.pdfover.pdfsignator/SignatureProfile#GetSignatureDimension()"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator/SignatureProfile@signatureProfile+at.asit.pdfover.pdfsignator/SignParameter@signParameter" source="//@children.1" target="//@children.4" targetEnd="//@children.1/@sourceConnections.0/@children.1" label="//@children.1/@sourceConnections.0/@children.2" sourceEnd="//@children.1/@sourceConnections.0/@children.0" connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:AssociationEndEditModel" name="signatureProfile" location="156,0" id="at.asit.pdfover.pdfsignator/SignatureProfile@signatureProfile+at.asit.pdfover.pdfsignator/SignParameter@signParameter|at.asit.pdfover.pdfsignator/SignatureProfile#signatureProfile" attachSource="true" multiplicityLabel="//@children.1/@sourceConnections.0/@children.0/@children.1" roleLabel="//@children.1/@sourceConnections.0/@children.0/@children.0" aggregationKind="Aggregration" navigable="true">
+ <children xsi:type="editmodel:LabelEditModel" name=" # signatureProfile" location="1196,390" size="107,13" anchorKind="FirstPart"/>
+ <children xsi:type="editmodel:LabelEditModel" name="1" location="1175,390" size="7,13" anchorKind="FirstPart"/>
+ </children>
+ <children xsi:type="editmodel:AssociationEndEditModel" name="signParameter" location="155,284" id="at.asit.pdfover.pdfsignator/SignatureProfile@signatureProfile+at.asit.pdfover.pdfsignator/SignParameter@signParameter|at.asit.pdfover.pdfsignator/SignParameter#signParameter"/>
+ <children xsi:type="editmodel:WireLabelEditModel" size="0,13" anchorKind="MiddlePart"/>
+ </sourceConnections>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty@profileProperty+at.asit.pdfover.pdfsignator/SignatureProfile@signatureProfile" source="//@children.1" target="//@children.2" targetEnd="//@children.1/@sourceConnections.1/@children.2" label="//@children.1/@sourceConnections.1/@children.0" sourceEnd="//@children.1/@sourceConnections.1/@children.1" connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:WireLabelEditModel" size="0,13" anchorKind="MiddlePart"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" name="signatureProfile" location="312,33" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty@profileProperty+at.asit.pdfover.pdfsignator/SignatureProfile@signatureProfile|at.asit.pdfover.pdfsignator/SignatureProfile#signatureProfile" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" name="profileProperty" location="0,191" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty@profileProperty+at.asit.pdfover.pdfsignator/SignatureProfile@signatureProfile|at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty#profileProperty" multiplicityLabel="//@children.1/@sourceConnections.1/@children.2/@children.1" roleLabel="//@children.1/@sourceConnections.1/@children.2/@children.0" aggregationKind="Aggregration" navigable="true" orderingKind="1">
+ <children xsi:type="editmodel:LabelEditModel" name=" # profileProperty" location="1405,424" size="101,13" anchorKind="LastPart"/>
+ <children xsi:type="editmodel:LabelEditModel" name="*" location="1500,451" size="6,13" anchorKind="LastPart"/>
+ </children>
+ </sourceConnections>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.1/@sourceConnections.1 //@children.3/@sourceConnections.0 //@children.5/@sourceConnections.0 //@children.6/@sourceConnections.0 //@children.7/@sourceConnections.0 //@children.8/@sourceConnections.0" name="ProfileProperty" location="1514,254" size="292,225" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty" runTimeClassModel="propertyValidator,Validate(),GetKey(),SetTextValue(Ljava.lang.String;),GetTextValue(),SetKey(Ljava.lang.String;),optional,SetOptional(Z),GetOptional(),AddValidator(Lat.asit.pdfover.pdfsignator.profileproperties.validators.PropertyValidator;)">
+ <children xsi:type="editmodel:CompartmentEditModel" size="117,18">
+ <children xsi:type="editmodel:AttributeEditModel" name="optional" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty#optional"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="269,144">
+ <children xsi:type="editmodel:MethodEditModel" name="AddValidator" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty#AddValidator(Lat.asit.pdfover.pdfsignator.profileproperties.validators.PropertyValidator;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetKey" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty#GetKey()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetOptional" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty#GetOptional()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetTextValue" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty#GetTextValue()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetKey" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty#SetKey(Ljava.lang.String;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetOptional" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty#SetOptional(Z)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="Validate" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty#Validate()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetTextValue" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty#SetTextValue(Ljava.lang.String;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.9/@sourceConnections.0 //@children.10/@sourceConnections.0 //@children.11/@sourceConnections.0" name="PropertyValidator" location="2009,239" size="314,153" id="at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator" runTimeClassModel="priority,GetPriority(),SetPriority(I),validate(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;),CheckPropertyType(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)">
+ <children xsi:type="editmodel:CompartmentEditModel" size="80,18">
+ <children xsi:type="editmodel:AttributeEditModel" name="priority" location="-3,46" id="at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator#priority"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="291,72">
+ <children xsi:type="editmodel:MethodEditModel" name="GetPriority" id="at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator#GetPriority()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetPriority" id="at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator#SetPriority(I)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="validate" id="at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator#validate(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="CheckPropertyType" id="at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator#CheckPropertyType(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator@propertyValidator+at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty@profileProperty" source="//@children.3" target="//@children.2" targetEnd="//@children.3/@sourceConnections.0/@children.1" label="//@children.3/@sourceConnections.0/@children.2" sourceEnd="//@children.3/@sourceConnections.0/@children.0" connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:AssociationEndEditModel" name="propertyValidator" location="0,83" id="at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator@propertyValidator+at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty@profileProperty|at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator#propertyValidator" attachSource="true" multiplicityLabel="//@children.3/@sourceConnections.0/@children.0/@children.1" roleLabel="//@children.3/@sourceConnections.0/@children.0/@children.0" aggregationKind="Aggregration" navigable="true" orderingKind="1">
+ <children xsi:type="editmodel:LabelEditModel" name=" # propertyValidator" location="1886,301" size="114,13" anchorKind="FirstPart"/>
+ <children xsi:type="editmodel:LabelEditModel" name="*" location="1994,328" size="6,13" anchorKind="FirstPart"/>
+ </children>
+ <children xsi:type="editmodel:AssociationEndEditModel" name="profileProperty" location="292,68" id="at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator@propertyValidator+at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty@profileProperty|at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty#profileProperty"/>
+ <children xsi:type="editmodel:WireLabelEditModel" size="0,13" anchorKind="MiddlePart"/>
+ </sourceConnections>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.0/@sourceConnections.0 //@children.1/@sourceConnections.0" name="SignParameter" location="1035,75" size="394,284" id="at.asit.pdfover.pdfsignator/SignParameter" runTimeClassModel="SetKeyIdentifier(Ljava.lang.String;),documentSource,keyIdentifier,SetSignatureProfile(Lat.asit.pdfover.pdfsignator.SignatureProfile;),signatureProfile,SetDocumentSource(Lat.asit.pdfover.pdfsignator.DocumentSource;),GetSignatureDevice(),GetKeyIdentifier(),GetSignaturePosition(),SetSignaturePosition(Lat.asit.pdfover.pdfsignator.SignaturePosition;),SetSignatureDevice(Ljava.lang.String;),signatureDevice,signaturePosition,GetDocumentSource(),GetSignatureProfile()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="220,54">
+ <children xsi:type="editmodel:AttributeEditModel" name="documentSource" id="at.asit.pdfover.pdfsignator/DocumentSource@documentSource+at.asit.pdfover.pdfsignator/SignParameter@signParameter|at.asit.pdfover.pdfsignator/DocumentSource#documentSource"/>
+ <children xsi:type="editmodel:AttributeEditModel" name="keyIdentifier" id="at.asit.pdfover.pdfsignator/SignParameter#keyIdentifier"/>
+ <children xsi:type="editmodel:AttributeEditModel" name="signatureDevice" id="at.asit.pdfover.pdfsignator/SignParameter#signatureDevice"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="371,180">
+ <children xsi:type="editmodel:MethodEditModel" name="SetSignaturePosition" id="at.asit.pdfover.pdfsignator/SignParameter#SetSignaturePosition(Lat.asit.pdfover.pdfsignator.SignaturePosition;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetDocumentSource" id="at.asit.pdfover.pdfsignator/SignParameter#SetDocumentSource(Lat.asit.pdfover.pdfsignator.DocumentSource;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetSignatureProfile" id="at.asit.pdfover.pdfsignator/SignParameter#SetSignatureProfile(Lat.asit.pdfover.pdfsignator.SignatureProfile;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetSignaturePosition" id="at.asit.pdfover.pdfsignator/SignParameter#GetSignaturePosition()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetKeyIdentifier" id="at.asit.pdfover.pdfsignator/SignParameter#SetKeyIdentifier(Ljava.lang.String;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetSignatureDevice" id="at.asit.pdfover.pdfsignator/SignParameter#SetSignatureDevice(Ljava.lang.String;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetDocumentSource" id="at.asit.pdfover.pdfsignator/SignParameter#GetDocumentSource()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetSignatureProfile" id="at.asit.pdfover.pdfsignator/SignParameter#GetSignatureProfile()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetKeyIdentifier" id="at.asit.pdfover.pdfsignator/SignParameter#GetKeyIdentifier()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetSignatureDevice" id="at.asit.pdfover.pdfsignator/SignParameter#GetSignatureDevice()"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator/DocumentSource@documentSource+at.asit.pdfover.pdfsignator/SignParameter@signParameter" source="//@children.4" target="//@children.13" targetEnd="//@children.4/@sourceConnections.0/@children.2" label="//@children.4/@sourceConnections.0/@children.0" sourceEnd="//@children.4/@sourceConnections.0/@children.1" connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:WireLabelEditModel" size="0,13" anchorKind="MiddlePart"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" name="signParameter" location="0,119" id="at.asit.pdfover.pdfsignator/DocumentSource@documentSource+at.asit.pdfover.pdfsignator/SignParameter@signParameter|at.asit.pdfover.pdfsignator/SignParameter#signParameter" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" name="documentSource" location="167,14" id="at.asit.pdfover.pdfsignator/DocumentSource@documentSource+at.asit.pdfover.pdfsignator/SignParameter@signParameter|at.asit.pdfover.pdfsignator/DocumentSource#documentSource" multiplicityLabel="//@children.4/@sourceConnections.0/@children.2/@children.1" roleLabel="//@children.4/@sourceConnections.0/@children.2/@children.0" aggregationKind="Aggregration" navigable="true">
+ <children xsi:type="editmodel:LabelEditModel" name=" # documentSource" location="803,172" size="113,13" anchorKind="LastPart"/>
+ <children xsi:type="editmodel:LabelEditModel" name="1" location="803,199" size="7,13" anchorKind="LastPart"/>
+ </children>
+ </sourceConnections>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" name="DateProfileProperty" location="1680,793" size="188,117" id="at.asit.pdfover.pdfsignator.profileproperties/DateProfileProperty" runTimeClassModel="dvalue,SetValue(Ljava.util.Date;),GetValue()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="90,18">
+ <children xsi:type="editmodel:AttributeEditModel" name="dvalue" id="at.asit.pdfover.pdfsignator.profileproperties/DateProfileProperty#dvalue"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="158,36">
+ <children xsi:type="editmodel:MethodEditModel" name="GetValue" id="at.asit.pdfover.pdfsignator.profileproperties/DateProfileProperty#GetValue()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetValue" id="at.asit.pdfover.pdfsignator.profileproperties/DateProfileProperty#SetValue(Ljava.util.Date;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty&lt;-at.asit.pdfover.pdfsignator.profileproperties/DateProfileProperty" source="//@children.5" target="//@children.2" targetEnd="//@children.5/@sourceConnections.0/@children.1" sourceEnd="//@children.5/@sourceConnections.0/@children.0" connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel" location="62,0" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" location="228,225"/>
+ </sourceConnections>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" name="FileProfileProperty" location="1215,601" size="179,117" id="at.asit.pdfover.pdfsignator.profileproperties/FileProfileProperty" runTimeClassModel="SetValue(Ljava.io.File;),GetValue(),fvalue">
+ <children xsi:type="editmodel:CompartmentEditModel" size="79,18">
+ <children xsi:type="editmodel:AttributeEditModel" name="fvalue" id="at.asit.pdfover.pdfsignator.profileproperties/FileProfileProperty#fvalue"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="150,36">
+ <children xsi:type="editmodel:MethodEditModel" name="GetValue" id="at.asit.pdfover.pdfsignator.profileproperties/FileProfileProperty#GetValue()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetValue" id="at.asit.pdfover.pdfsignator.profileproperties/FileProfileProperty#SetValue(Ljava.io.File;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty&lt;-at.asit.pdfover.pdfsignator.profileproperties/FileProfileProperty" source="//@children.6" target="//@children.2" targetEnd="//@children.6/@sourceConnections.0/@children.1" sourceEnd="//@children.6/@sourceConnections.0/@children.0" connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel" location="159,0" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" location="9,225"/>
+ </sourceConnections>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" name="FloatProfileProperty" location="1469,793" size="190,117" id="at.asit.pdfover.pdfsignator.profileproperties/FloatProfileProperty" runTimeClassModel="SetValue(F),GetValue(),fvalue">
+ <children xsi:type="editmodel:CompartmentEditModel" size="88,18">
+ <children xsi:type="editmodel:AttributeEditModel" name="fvalue" id="at.asit.pdfover.pdfsignator.profileproperties/FloatProfileProperty#fvalue"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="157,36">
+ <children xsi:type="editmodel:MethodEditModel" name="GetValue" id="at.asit.pdfover.pdfsignator.profileproperties/FloatProfileProperty#GetValue()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetValue" id="at.asit.pdfover.pdfsignator.profileproperties/FloatProfileProperty#SetValue(F)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty&lt;-at.asit.pdfover.pdfsignator.profileproperties/FloatProfileProperty" source="//@children.7" target="//@children.2" targetEnd="//@children.7/@sourceConnections.0/@children.1" sourceEnd="//@children.7/@sourceConnections.0/@children.0" connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel" location="117,0" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" location="72,225"/>
+ </sourceConnections>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" name="IntegerProfileProperty" location="1215,793" size="206,117" id="at.asit.pdfover.pdfsignator.profileproperties/IntegerProfileProperty" runTimeClassModel="ivalue,SetValue(I),GetValue()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="100,18">
+ <children xsi:type="editmodel:AttributeEditModel" name="ivalue" id="at.asit.pdfover.pdfsignator.profileproperties/IntegerProfileProperty#ivalue"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="146,36">
+ <children xsi:type="editmodel:MethodEditModel" name="GetValue" id="at.asit.pdfover.pdfsignator.profileproperties/IntegerProfileProperty#GetValue()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetValue" id="at.asit.pdfover.pdfsignator.profileproperties/IntegerProfileProperty#SetValue(I)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator.profileproperties/ProfileProperty&lt;-at.asit.pdfover.pdfsignator.profileproperties/IntegerProfileProperty" source="//@children.8" target="//@children.2" targetEnd="//@children.8/@sourceConnections.0/@children.1" sourceEnd="//@children.8/@sourceConnections.0/@children.0" connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel" location="144,0" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" location="66,225"/>
+ </sourceConnections>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" name="IntegerRangeValidator" location="2248,629" size="314,153" id="at.asit.pdfover.pdfsignator.profileproperties.validators/IntegerRangeValidator" runTimeClassModel="min,max,IntegerRangeValidator(II),validate(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;),CheckPropertyType(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)">
+ <children xsi:type="editmodel:CompartmentEditModel" size="65,36">
+ <children xsi:type="editmodel:AttributeEditModel" name="max" id="at.asit.pdfover.pdfsignator.profileproperties.validators/IntegerRangeValidator#max"/>
+ <children xsi:type="editmodel:AttributeEditModel" name="min" id="at.asit.pdfover.pdfsignator.profileproperties.validators/IntegerRangeValidator#min"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="291,54">
+ <children xsi:type="editmodel:MethodEditModel" name="CheckPropertyType" id="at.asit.pdfover.pdfsignator.profileproperties.validators/IntegerRangeValidator#CheckPropertyType(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="IntegerRangeValidator" id="at.asit.pdfover.pdfsignator.profileproperties.validators/IntegerRangeValidator#IntegerRangeValidator(II)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="validate" id="at.asit.pdfover.pdfsignator.profileproperties.validators/IntegerRangeValidator#validate(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator&lt;-at.asit.pdfover.pdfsignator.profileproperties.validators/IntegerRangeValidator" source="//@children.9" target="//@children.3" targetEnd="//@children.9/@sourceConnections.0/@children.1" sourceEnd="//@children.9/@sourceConnections.0/@children.0" connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel" location="37,0" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" location="276,153"/>
+ </sourceConnections>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" name="FloatRangeValidator" location="2249,449" size="314,153" id="at.asit.pdfover.pdfsignator.profileproperties.validators/FloatRangeValidator" runTimeClassModel="min,max,validate(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;),FloatRangeValidator(FF),CheckPropertyType(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)">
+ <children xsi:type="editmodel:CompartmentEditModel" size="76,36">
+ <children xsi:type="editmodel:AttributeEditModel" name="max" id="at.asit.pdfover.pdfsignator.profileproperties.validators/FloatRangeValidator#max"/>
+ <children xsi:type="editmodel:AttributeEditModel" name="min" id="at.asit.pdfover.pdfsignator.profileproperties.validators/FloatRangeValidator#min"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="291,54">
+ <children xsi:type="editmodel:MethodEditModel" name="CheckPropertyType" id="at.asit.pdfover.pdfsignator.profileproperties.validators/FloatRangeValidator#CheckPropertyType(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="FloatRangeValidator" id="at.asit.pdfover.pdfsignator.profileproperties.validators/FloatRangeValidator#FloatRangeValidator(FF)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="validate" id="at.asit.pdfover.pdfsignator.profileproperties.validators/FloatRangeValidator#validate(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator&lt;-at.asit.pdfover.pdfsignator.profileproperties.validators/FloatRangeValidator" source="//@children.10" target="//@children.3" targetEnd="//@children.10/@sourceConnections.0/@children.1" sourceEnd="//@children.10/@sourceConnections.0/@children.0" connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel" location="36,0" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" location="276,153"/>
+ </sourceConnections>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" name="RegExValidator" location="2249,810" size="314,135" id="at.asit.pdfover.pdfsignator.profileproperties.validators/RegExValidator" runTimeClassModel="regex,RegExValidator(Ljava.lang.String;),validate(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;),CheckPropertyType(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)">
+ <children xsi:type="editmodel:CompartmentEditModel" size="93,18">
+ <children xsi:type="editmodel:AttributeEditModel" name="regex" id="at.asit.pdfover.pdfsignator.profileproperties.validators/RegExValidator#regex"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="291,54">
+ <children xsi:type="editmodel:MethodEditModel" name="CheckPropertyType" id="at.asit.pdfover.pdfsignator.profileproperties.validators/RegExValidator#CheckPropertyType(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="RegExValidator" id="at.asit.pdfover.pdfsignator.profileproperties.validators/RegExValidator#RegExValidator(Ljava.lang.String;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="validate" id="at.asit.pdfover.pdfsignator.profileproperties.validators/RegExValidator#validate(Lat.asit.pdfover.pdfsignator.profileproperties.ProfileProperty;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator.profileproperties.validators/PropertyValidator&lt;-at.asit.pdfover.pdfsignator.profileproperties.validators/RegExValidator" source="//@children.11" target="//@children.3" targetEnd="//@children.11/@sourceConnections.0/@children.1" sourceEnd="//@children.11/@sourceConnections.0/@children.0" connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel" location="36,0" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" location="276,153"/>
+ </sourceConnections>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.0/@sourceConnections.1 //@children.13/@sourceConnections.0" name="SignResult" location="29,179" size="394,176" id="at.asit.pdfover.pdfsignator/SignResult" runTimeClassModel="SetDocumentSource(Lat.asit.pdfover.pdfsignator.DocumentSource;),SetSignerCertificate(Ljavax.security.cert.Certificate;),SetSignerCertificate(),signerCertificate,documentSource,SetSignaturePosition(Lat.asit.pdfover.pdfsignator.SignaturePosition;),GetSignaturePosition(),GetDocumentSource(),signaturePosition">
+ <children xsi:type="editmodel:CompartmentEditModel" size="179,18">
+ <children xsi:type="editmodel:AttributeEditModel" name="signerCertificate" id="at.asit.pdfover.pdfsignator/SignResult#signerCertificate"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="371,108">
+ <children xsi:type="editmodel:MethodEditModel" name="GetDocumentSource" id="at.asit.pdfover.pdfsignator/SignResult#GetDocumentSource()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetSignaturePosition" id="at.asit.pdfover.pdfsignator/SignResult#GetSignaturePosition()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetDocumentSource" id="at.asit.pdfover.pdfsignator/SignResult#SetDocumentSource(Lat.asit.pdfover.pdfsignator.DocumentSource;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetSignaturePosition" id="at.asit.pdfover.pdfsignator/SignResult#SetSignaturePosition(Lat.asit.pdfover.pdfsignator.SignaturePosition;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetSignerCertificate" id="at.asit.pdfover.pdfsignator/SignResult#SetSignerCertificate()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="SetSignerCertificate" id="at.asit.pdfover.pdfsignator/SignResult#SetSignerCertificate(Ljavax.security.cert.Certificate;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.4/@sourceConnections.0" name="DocumentSource" location="630,180" size="167,30" id="at.asit.pdfover.pdfsignator/DocumentSource" runTimeClassModel="">
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel" autoLocated="true" id="at.asit.pdfover.pdfsignator/DocumentSource@documentSource+at.asit.pdfover.pdfsignator/SignResult@signResult" source="//@children.13" target="//@children.12" targetEnd="//@children.13/@sourceConnections.0/@children.1" label="//@children.13/@sourceConnections.0/@children.2" sourceEnd="//@children.13/@sourceConnections.0/@children.0" connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:AssociationEndEditModel" name="documentSource" location="0,14" id="at.asit.pdfover.pdfsignator/DocumentSource@documentSource+at.asit.pdfover.pdfsignator/SignResult@signResult|at.asit.pdfover.pdfsignator/DocumentSource#documentSource" attachSource="true" multiplicityLabel="//@children.13/@sourceConnections.0/@children.0/@children.1" roleLabel="//@children.13/@sourceConnections.0/@children.0/@children.0" aggregationKind="Aggregration" navigable="true">
+ <children xsi:type="editmodel:LabelEditModel" name=" # documentSource" location="508,172" size="113,13" anchorKind="FirstPart"/>
+ <children xsi:type="editmodel:LabelEditModel" name="1" location="614,199" size="7,13" anchorKind="FirstPart"/>
+ </children>
+ <children xsi:type="editmodel:AssociationEndEditModel" name="signResult" location="394,15" id="at.asit.pdfover.pdfsignator/DocumentSource@documentSource+at.asit.pdfover.pdfsignator/SignResult@signResult|at.asit.pdfover.pdfsignator/SignResult#signResult"/>
+ <children xsi:type="editmodel:WireLabelEditModel" size="0,13" anchorKind="MiddlePart"/>
+ </sourceConnections>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" name="PDFSignator" location="479,-60" size="503,194" id="at.asit.pdfover.pdfsignator/PDFSignator" runTimeClassModel="Sign(Lat.asit.pdfover.pdfsignator.SignParameter;),CreateNewProfile(Ljava.lang.String;),CreateNewProfile(Ljava.lang.String;Ljava.lang.String;),GetAvailableProfileIDs(),GetProfile(Ljava.lang.String;),profiles,CreateNewProfile(Lat.asit.pdfover.pdfsignator.SignatureProfile;Ljava.lang.String;),GetAvailableProfiles()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="269,18">
+ <children xsi:type="editmodel:AttributeEditModel" name="profiles" id="at.asit.pdfover.pdfsignator/PDFSignator#profiles"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="480,126">
+ <children xsi:type="editmodel:MethodEditModel" name="CreateNewProfile" id="at.asit.pdfover.pdfsignator/PDFSignator#CreateNewProfile(Ljava.lang.String;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetProfile" id="at.asit.pdfover.pdfsignator/PDFSignator#GetProfile(Ljava.lang.String;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="Sign" id="at.asit.pdfover.pdfsignator/PDFSignator#Sign(Lat.asit.pdfover.pdfsignator.SignParameter;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetAvailableProfiles" id="at.asit.pdfover.pdfsignator/PDFSignator#GetAvailableProfiles()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="CreateNewProfile" id="at.asit.pdfover.pdfsignator/PDFSignator#CreateNewProfile(Ljava.lang.String;Ljava.lang.String;)"/>
+ <children xsi:type="editmodel:MethodEditModel" name="GetAvailableProfileIDs" id="at.asit.pdfover.pdfsignator/PDFSignator#GetAvailableProfileIDs()"/>
+ <children xsi:type="editmodel:MethodEditModel" name="CreateNewProfile" id="at.asit.pdfover.pdfsignator/PDFSignator#CreateNewProfile(Lat.asit.pdfover.pdfsignator.SignatureProfile;Ljava.lang.String;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+ <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+ </children>
+ <diagramOptions xsi:type="options:ClassDiagramOptions" properties="wireOptions=3;Product=eUML2" autoName="false"/>
+ <boardSetting snapToGeometry="true" gridEnabled="true" gridSpacing="15,15" gridOrigin="0,0" rulerUnit="pixel" gridVisibility="false">
+ <leftRuler/>
+ <topRuler>
+ <guides position="450"/>
+ <guides position="719"/>
+ </topRuler>
+ </boardSetting>
+ <classDiagramPreferences xsi:type="editmodel:UMLClassDiagramPreference" showPopupBars="true" showConnectionHandles="true" showMethodsParameterTypes="true" showMethodsReturnType="true" showMethodsParameterNames="true" showMethodsParameterKinds="true" attributeSorter="Natural" methodSorter="Natural" showClassStereotype="true" showPackageStereotype="true" showDependencyStereotype="true" showInterfaceStereotype="true" innerClassSorter="Natural" showProtectedAttributes="true" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showProtectedMethods="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showProtectedInnerClasses="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true" showAssociationMember="true"/>
+</editmodel:ClassDiagramEditModel>
diff --git a/pdf-over/pdf-signer-pdf-as/pom.xml b/pdf-over/pdf-signer-pdf-as/pom.xml
new file mode 100644
index 00000000..6bf80b1b
--- /dev/null
+++ b/pdf-over/pdf-signer-pdf-as/pom.xml
@@ -0,0 +1,20 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>pdf-over</artifactId>
+ <groupId>at.a-sit</groupId>
+ <version>4.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>pdf-signer-pdf-as</artifactId>
+ <name>PDFSignator PDF-AS Implementation</name>
+ <dependencies>
+ <dependency>
+ <groupId>at.a-sit</groupId>
+ <artifactId>pdf-signer-interface</artifactId>
+ <version>0.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ <inceptionYear>2012</inceptionYear>
+ <url>http://www.buergerkarte.at</url>
+</project> \ No newline at end of file
diff --git a/pdf-over/pom.xml b/pdf-over/pom.xml
new file mode 100644
index 00000000..ce5044e1
--- /dev/null
+++ b/pdf-over/pom.xml
@@ -0,0 +1,72 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>at.a-sit</groupId>
+ <artifactId>pdf-over</artifactId>
+ <version>4.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>PDF-OVER</name>
+ <url>http://www.buergerkarte.at</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <inceptionYear>2012</inceptionYear>
+
+ <developers>
+
+ <developer>
+ <id>tkellner</id>
+ <name>Tobias Kellner</name>
+ <email>tobias.kellner@egiz.gv.at</email>
+ <organization>EGIZ</organization>
+ <roles>
+ <role>developer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+
+ <developer>
+ <id>vkrnjic</id>
+ <name>Vesna Krnjic</name>
+ <email>vesna.krnjic@iaik.tugraz.at</email>
+ <organization>EGIZ</organization>
+ <roles>
+ <role>developer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+
+ <developer>
+ <id>afitzek</id>
+ <name>Andreas Fitzek</name>
+ <email>roland.fitzek@iaik.tugraz.at</email>
+ <organization>EGIZ</organization>
+ <roles>
+ <role>developer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+
+ </developers>
+
+ <organization>
+ <name>EGIZ - E-Government Innovationszentrum</name>
+ <url>http://www.egiz.gv.at/</url>
+ </organization>
+ <modules>
+ <module>pdf-signer-interface</module>
+ <module>pdf-signer-pdf-as</module>
+ </modules>
+</project>