From 8b87b650b80065dd60acebca2698b76685971759 Mon Sep 17 00:00:00 2001
From: Bojan Suzic <bojan.suzic@iaik.tugraz.at>
Date: Mon, 5 May 2014 15:50:47 +0200
Subject: redefining corp body and phys person

---
 .../stork2/CorporateBodyMandateContainer.java      | 164 +++++----------------
 .../moa/id/protocols/stork2/MandateContainer.java  | 157 ++++++++++++++++++++
 .../stork2/PhyPersonMandateContainer.java          | 154 ++++---------------
 3 files changed, 215 insertions(+), 260 deletions(-)
 create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateContainer.java

(limited to 'id/server/idserverlib/src')

diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/CorporateBodyMandateContainer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/CorporateBodyMandateContainer.java
index a75cdfb80..4bea124cb 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/CorporateBodyMandateContainer.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/CorporateBodyMandateContainer.java
@@ -1,5 +1,7 @@
 package at.gv.egovernment.moa.id.protocols.stork2;
 
+import at.gv.egovernment.moa.id.auth.exception.MOAIDException;
+import at.gv.egovernment.moa.logging.Logger;
 import javanet.staxutils.SimpleNamespaceContext;
 import org.xml.sax.InputSource;
 
@@ -7,42 +9,32 @@ import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathExpressionException;
 import javax.xml.xpath.XPathFactory;
 import java.io.StringReader;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.util.HashMap;
 
 /**
  * Physical person representing corporate body
+ *
  * @author bsuzic
  *         Date: 4/29/14, Time: 3:40 PM
  */
-public class CorporateBodyMandateContainer {
-
-    private String corpMandatorIdentificationValue = null;
-    private String corpMandatorIdentificationType = null;
-    private String corpMandatorFullName = null;
-    private String mandateIssuePlace = null;
-    private String mandateIssueDate = null;
-    private String mandateIssueTime = null;
-    private String simpleMandateContent = null;
-    private String mandateValidFrom = null;
-    private String mandateValidTo = null;
-    private String annotation = null;
-    private String physicalRepresentativeIdentificationValue = null;
-    private String physicalRepresentativeIdentificationType = null;
-    private String physicalRepresentativeGivenName = null;
-    private String physicalRepresentativeFamilyName = null;
-    private String physicalRepresentativeBirthDate = null;
-
-
-    public CorporateBodyMandateContainer(String mandate) throws XPathExpressionException {
-        XPath xPath = XPathFactory.newInstance().newXPath();
-        HashMap<String, String> prefMap = new HashMap<String, String>() {{
-            put(S2Constants.MANDATE_PREFIX, S2Constants.MANDATE_NS);
-            put(S2Constants.PERSONDATA_PREFIX, S2Constants.PERSONDATA_NS);
-            put(S2Constants.XMLDSIG_PREFIX, S2Constants.XMLDSIG_NS);
-        }};
-
-        SimpleNamespaceContext namespace = new SimpleNamespaceContext(prefMap);
-        xPath.setNamespaceContext(namespace);
+public class CorporateBodyMandateContainer extends MandateContainer {
+
+    protected String corpMandatorIdentificationValue = null;
+    protected String corpMandatorIdentificationType = null;
+    protected String corpMandatorFullName = null;
+
+
+    String localMethods[] = new String[]{"getCorpMandatorIdentificationValue", "getCorpMandatorIdentificationType", "getCorpMandatorFullName",
+            "getMandateIssuePlace", "getMandateIssueDate", "getMandateIssueTime", "getSimpleMandateContent", "getMandateValidFrom",
+            "getMandateValidTo", "getPhysicalRepresentativeIdentificationValue", "getPhysicalRepresentativeIdentificationType", "getAnnotation",
+            "getPhysicalRepresentativeGivenName", "getPhysicalRepresentativeFamilyName", "getPhysicalRepresentativeBirthDate"
+    };
+
+    public CorporateBodyMandateContainer(String mandate) throws XPathExpressionException, MOAIDException {
+        super(mandate);
+        Logger.debug("Initializing corporate body mandate container.");
 
         setAnnotation(xPath.evaluate(S2Constants.MANDATE_ANNOTATION_QUERY, new InputSource(new StringReader(mandate))));
         setCorpMandatorFullName(xPath.evaluate(S2Constants.MANDATE_MANDATOR_CORPBODY_FULLNAME_QUERY, new InputSource(new StringReader(mandate))));
@@ -61,16 +53,23 @@ public class CorporateBodyMandateContainer {
         setSimpleMandateContent(xPath.evaluate(S2Constants.MANDATE_SIMPLEMANDATECONTENT_TXTDESC_QUERY, new InputSource(new StringReader(mandate))));
 
         // check if all necessary fields are present
-        validateMandateStructure(); // TODO
-
-    }
+        Logger.debug("Starting mandate structure validation");
+        try {
+            validateMandateStructure(localMethods); // TODO
+        } catch (Exception e) {
 
+            if (e instanceof MOAIDException)  {
+            Logger.error("Could not validate mandate structure.");
+                throw new MOAIDException("stork.16", new Object[] {e.getMessage()}); // TODO
+            } else {
+                Logger.error("Error during mandate structure validation.");
+                throw new MOAIDException("stork.16", new Object[] {e.getMessage()}); // TODO
+            }
 
-    public void validateMandateStructure() {
+        }
 
     }
 
-
     public String getCorpMandatorIdentificationValue() {
         return corpMandatorIdentificationValue;
     }
@@ -95,103 +94,6 @@ public class CorporateBodyMandateContainer {
         this.corpMandatorFullName = corpMandatorFullName;
     }
 
-    public String getMandateIssuePlace() {
-        return mandateIssuePlace;
-    }
-
-    public void setMandateIssuePlace(String mandateIssuePlace) {
-        this.mandateIssuePlace = mandateIssuePlace;
-    }
-
-    public String getMandateIssueDate() {
-        return mandateIssueDate;
-    }
-
-    public void setMandateIssueDate(String mandateIssueDate) {
-        this.mandateIssueDate = mandateIssueDate;
-    }
-
-    public String getMandateIssueTime() {
-        return mandateIssueTime;
-    }
-
-    public void setMandateIssueTime(String mandateIssueTime) {
-        this.mandateIssueTime = mandateIssueTime;
-    }
-
-    public String getSimpleMandateContent() {
-        return simpleMandateContent;
-    }
-
-    public void setSimpleMandateContent(String simpleMandateContent) {
-        this.simpleMandateContent = simpleMandateContent;
-    }
-
-    public String getMandateValidFrom() {
-        return mandateValidFrom;
-    }
-
-    public void setMandateValidFrom(String mandateValidFrom) {
-        this.mandateValidFrom = mandateValidFrom;
-    }
-
-    public String getMandateValidTo() {
-        return mandateValidTo;
-    }
-
-    public void setMandateValidTo(String mandateValidTo) {
-        this.mandateValidTo = mandateValidTo;
-    }
-
-    public String getPhysicalRepresentativeIdentificationValue() {
-        return physicalRepresentativeIdentificationValue;
-    }
-
-    public void setPhysicalRepresentativeIdentificationValue(String physicalRepresentativeIdentificationValue) {
-        this.physicalRepresentativeIdentificationValue = physicalRepresentativeIdentificationValue;
-    }
-
-    public String getPhysicalRepresentativeIdentificationType() {
-        return physicalRepresentativeIdentificationType;
-    }
-
-    public void setPhysicalRepresentativeIdentificationType(String physicalRepresentativeIdentificationType) {
-        this.physicalRepresentativeIdentificationType = physicalRepresentativeIdentificationType;
-    }
-
-    public String getPhysicalRepresentativeGivenName() {
-        return physicalRepresentativeGivenName;
-    }
-
-    public void setPhysicalRepresentativeGivenName(String physicalRepresentativeGivenName) {
-        this.physicalRepresentativeGivenName = physicalRepresentativeGivenName;
-    }
-
-    public String getPhysicalRepresentativeFamilyName() {
-        return physicalRepresentativeFamilyName;
-    }
-
-    public void setPhysicalRepresentativeFamilyName(String physicalRepresentativeFamilyName) {
-        this.physicalRepresentativeFamilyName = physicalRepresentativeFamilyName;
-    }
-
-    public String getPhysicalRepresentativeBirthDate() {
-        return physicalRepresentativeBirthDate;
-    }
-
-    public void setPhysicalRepresentativeBirthDate(String physicalRepresentativeBirthDate) {
-        this.physicalRepresentativeBirthDate = physicalRepresentativeBirthDate;
-    }
-
-
-
-    public String getAnnotation() {
-        return annotation;
-    }
-
-    public void setAnnotation(String annotation) {
-        this.annotation = annotation;
-    }
 
 
 }
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateContainer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateContainer.java
new file mode 100644
index 000000000..542776f52
--- /dev/null
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateContainer.java
@@ -0,0 +1,157 @@
+package at.gv.egovernment.moa.id.protocols.stork2;
+
+import at.gv.egovernment.moa.id.auth.exception.MOAIDException;
+import at.gv.egovernment.moa.logging.Logger;
+import javanet.staxutils.SimpleNamespaceContext;
+
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+
+/**
+ * @author bsuzic
+ *         Date: 5/5/14, Time: 2:35 PM
+ */
+public abstract class MandateContainer {
+    protected String mandateIssuePlace = null;
+    protected String mandateIssueDate = null;
+    protected String mandateIssueTime = null;
+    protected String simpleMandateContent = null;
+    protected String mandateValidFrom = null;
+    protected String mandateValidTo = null;
+    protected String annotation = null;
+    protected String physicalRepresentativeIdentificationValue = null;
+    protected String physicalRepresentativeIdentificationType = null;
+    protected String physicalRepresentativeGivenName = null;
+    protected String physicalRepresentativeFamilyName = null;
+    protected String physicalRepresentativeBirthDate = null;
+    protected XPath xPath = null;
+
+
+    public MandateContainer(String mandate) throws XPathExpressionException, MOAIDException {
+        xPath = XPathFactory.newInstance().newXPath();
+        HashMap<String, String> prefMap = new HashMap<String, String>() {{
+            put(S2Constants.MANDATE_PREFIX, S2Constants.MANDATE_NS);
+            put(S2Constants.PERSONDATA_PREFIX, S2Constants.PERSONDATA_NS);
+            put(S2Constants.XMLDSIG_PREFIX, S2Constants.XMLDSIG_NS);
+        }};
+
+        SimpleNamespaceContext namespace = new SimpleNamespaceContext(prefMap);
+        xPath.setNamespaceContext(namespace);
+    }
+
+
+    public void validateMandateStructure(String localMethods[]) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, MOAIDException {
+        for (String localMethod : localMethods) {
+            Method method = this.getClass().getMethod(localMethod);
+            Object x = method.invoke(this);
+            if ((x == null) || x.toString().length() == 0) {
+                throw new MOAIDException("stork.16", new Object[] {localMethod}); // TODO
+            }
+        }
+        Logger.debug("Mandate structure validated");
+    }
+
+
+    public String getMandateIssuePlace() {
+        return mandateIssuePlace;
+    }
+
+    public void setMandateIssuePlace(String mandateIssuePlace) {
+        this.mandateIssuePlace = mandateIssuePlace;
+    }
+
+    public String getMandateIssueDate() {
+        return mandateIssueDate;
+    }
+
+    public void setMandateIssueDate(String mandateIssueDate) {
+        this.mandateIssueDate = mandateIssueDate;
+    }
+
+    public String getMandateIssueTime() {
+        return mandateIssueTime;
+    }
+
+    public void setMandateIssueTime(String mandateIssueTime) {
+        this.mandateIssueTime = mandateIssueTime;
+    }
+
+    public String getSimpleMandateContent() {
+        return simpleMandateContent;
+    }
+
+    public void setSimpleMandateContent(String simpleMandateContent) {
+        this.simpleMandateContent = simpleMandateContent;
+    }
+
+    public String getMandateValidFrom() {
+        return mandateValidFrom;
+    }
+
+    public void setMandateValidFrom(String mandateValidFrom) {
+        this.mandateValidFrom = mandateValidFrom;
+    }
+
+    public String getMandateValidTo() {
+        return mandateValidTo;
+    }
+
+    public void setMandateValidTo(String mandateValidTo) {
+        this.mandateValidTo = mandateValidTo;
+    }
+
+    public String getPhysicalRepresentativeIdentificationValue() {
+        return physicalRepresentativeIdentificationValue;
+    }
+
+    public void setPhysicalRepresentativeIdentificationValue(String physicalRepresentativeIdentificationValue) {
+        this.physicalRepresentativeIdentificationValue = physicalRepresentativeIdentificationValue;
+    }
+
+    public String getPhysicalRepresentativeIdentificationType() {
+        return physicalRepresentativeIdentificationType;
+    }
+
+    public void setPhysicalRepresentativeIdentificationType(String physicalRepresentativeIdentificationType) {
+        this.physicalRepresentativeIdentificationType = physicalRepresentativeIdentificationType;
+    }
+
+    public String getPhysicalRepresentativeGivenName() {
+        return physicalRepresentativeGivenName;
+    }
+
+    public void setPhysicalRepresentativeGivenName(String physicalRepresentativeGivenName) {
+        this.physicalRepresentativeGivenName = physicalRepresentativeGivenName;
+    }
+
+    public String getPhysicalRepresentativeFamilyName() {
+        return physicalRepresentativeFamilyName;
+    }
+
+    public void setPhysicalRepresentativeFamilyName(String physicalRepresentativeFamilyName) {
+        this.physicalRepresentativeFamilyName = physicalRepresentativeFamilyName;
+    }
+
+    public String getPhysicalRepresentativeBirthDate() {
+        return physicalRepresentativeBirthDate;
+    }
+
+    public void setPhysicalRepresentativeBirthDate(String physicalRepresentativeBirthDate) {
+        this.physicalRepresentativeBirthDate = physicalRepresentativeBirthDate;
+    }
+
+    public String getAnnotation() {
+        return annotation;
+    }
+
+    public void setAnnotation(String annotation) {
+        this.annotation = annotation;
+    }
+
+
+
+}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/PhyPersonMandateContainer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/PhyPersonMandateContainer.java
index 6143d69b4..c4be57bd3 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/PhyPersonMandateContainer.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/PhyPersonMandateContainer.java
@@ -1,5 +1,7 @@
 package at.gv.egovernment.moa.id.protocols.stork2;
 
+import at.gv.egovernment.moa.id.auth.exception.MOAIDException;
+import at.gv.egovernment.moa.logging.Logger;
 import javanet.staxutils.SimpleNamespaceContext;
 import org.xml.sax.InputSource;
 
@@ -14,37 +16,23 @@ import java.util.HashMap;
  * @author bsuzic
  *         Date: 4/30/14, Time: 11:29 AM
  */
-public class PhyPersonMandateContainer {
+public class PhyPersonMandateContainer extends MandateContainer {
 
     private String phyPersMandatorIdentificationValue = null;
     private String phyPersMandatorIdentificationType = null;
     private String phyPersMandatorGivenName = null;
     private String phyPersMandatorFamilyName = null;
     private String phyPersMandatorBirthDate = null;
-    private String mandateIssuePlace = null;
-    private String mandateIssueDate = null;
-    private String mandateIssueTime = null;
-    private String simpleMandateContent = null;
-    private String mandateValidFrom = null;
-    private String mandateValidTo = null;
-    private String annotation = null;
-    private String physicalRepresentativeIdentificationValue = null;
-    private String physicalRepresentativeIdentificationType = null;
-    private String physicalRepresentativeGivenName = null;
-    private String physicalRepresentativeFamilyName = null;
-    private String physicalRepresentativeBirthDate = null;
-
-
-    public PhyPersonMandateContainer(String mandate) throws XPathExpressionException {
-        XPath xPath = XPathFactory.newInstance().newXPath();
-        HashMap<String, String> prefMap = new HashMap<String, String>() {{
-            put(S2Constants.MANDATE_PREFIX, S2Constants.MANDATE_NS);
-            put(S2Constants.PERSONDATA_PREFIX, S2Constants.PERSONDATA_NS);
-            put(S2Constants.XMLDSIG_PREFIX, S2Constants.XMLDSIG_NS);
-        }};
-
-        SimpleNamespaceContext namespace = new SimpleNamespaceContext(prefMap);
-        xPath.setNamespaceContext(namespace);
+
+    String localMethods[] = new String[]{"getPhyPersMandatorGivenName", "getPhyPersMandatorFamilyName", "getPhyPersMandatorBirthDate", "getPhyPersMandatorIdentificationValue",
+            "getPhyPersMandatorIdentificationType", "getMandateIssuePlace", "getMandateIssueDate", "getMandateIssueTime", "getSimpleMandateContent", "getMandateValidFrom",
+            "getMandateValidTo", "getPhysicalRepresentativeIdentificationValue", "getPhysicalRepresentativeIdentificationType", "getAnnotation",
+            "getPhysicalRepresentativeGivenName", "getPhysicalRepresentativeFamilyName", "getPhysicalRepresentativeBirthDate"
+    };
+
+
+    public PhyPersonMandateContainer(String mandate) throws XPathExpressionException, MOAIDException {
+        super(mandate);
 
         setAnnotation(xPath.evaluate(S2Constants.MANDATE_ANNOTATION_QUERY, new InputSource(new StringReader(mandate))));
         setPhyPersMandatorIdentificationType(xPath.evaluate(S2Constants.MANDATE_MANDATOR_PHYPERS_IDTYPE_QUERY, new InputSource(new StringReader(mandate))));
@@ -65,14 +53,22 @@ public class PhyPersonMandateContainer {
         setSimpleMandateContent(xPath.evaluate(S2Constants.MANDATE_SIMPLEMANDATECONTENT_TXTDESC_QUERY, new InputSource(new StringReader(mandate))));
 
         // check if all necessary fields are present
-        validateMandateStructure(); // TODO
+        Logger.debug("Starting mandate structure validation");
+        try {
+            validateMandateStructure(localMethods); // TODO
+        } catch (Exception e) {
+            if (e instanceof MOAIDException)  {
+                Logger.error("Could not validate mandate structure.");
+                throw new MOAIDException("stork.16", new Object[] {e.getMessage()}); // TODO
+            } else {
+                Logger.error("Error during mandate structure validation.");
+                throw new MOAIDException("stork.16", new Object[] {e.getMessage()}); // TODO
+            }
 
+        }
     }
 
 
-    public void validateMandateStructure() {
-
-    }
 
     public String getPhyPersMandatorGivenName() {
         return phyPersMandatorGivenName;
@@ -114,104 +110,4 @@ public class PhyPersonMandateContainer {
         this.phyPersMandatorIdentificationType = phyPersMandatorIdentificationType;
     }
 
-    public String getMandateIssuePlace() {
-        return mandateIssuePlace;
-    }
-
-    public void setMandateIssuePlace(String mandateIssuePlace) {
-        this.mandateIssuePlace = mandateIssuePlace;
-    }
-
-    public String getMandateIssueDate() {
-        return mandateIssueDate;
-    }
-
-    public void setMandateIssueDate(String mandateIssueDate) {
-        this.mandateIssueDate = mandateIssueDate;
-    }
-
-    public String getMandateIssueTime() {
-        return mandateIssueTime;
-    }
-
-    public void setMandateIssueTime(String mandateIssueTime) {
-        this.mandateIssueTime = mandateIssueTime;
-    }
-
-    public String getSimpleMandateContent() {
-        return simpleMandateContent;
-    }
-
-    public void setSimpleMandateContent(String simpleMandateContent) {
-        this.simpleMandateContent = simpleMandateContent;
-    }
-
-    public String getMandateValidFrom() {
-        return mandateValidFrom;
-    }
-
-    public void setMandateValidFrom(String mandateValidFrom) {
-        this.mandateValidFrom = mandateValidFrom;
-    }
-
-    public String getMandateValidTo() {
-        return mandateValidTo;
-    }
-
-    public void setMandateValidTo(String mandateValidTo) {
-        this.mandateValidTo = mandateValidTo;
-    }
-
-    public String getAnnotation() {
-        return annotation;
-    }
-
-    public void setAnnotation(String annotation) {
-        this.annotation = annotation;
-    }
-
-    public String getPhysicalRepresentativeIdentificationValue() {
-        return physicalRepresentativeIdentificationValue;
-    }
-
-    public void setPhysicalRepresentativeIdentificationValue(String physicalRepresentativeIdentificationValue) {
-        this.physicalRepresentativeIdentificationValue = physicalRepresentativeIdentificationValue;
-    }
-
-    public String getPhysicalRepresentativeIdentificationType() {
-        return physicalRepresentativeIdentificationType;
-    }
-
-    public void setPhysicalRepresentativeIdentificationType(String physicalRepresentativeIdentificationType) {
-        this.physicalRepresentativeIdentificationType = physicalRepresentativeIdentificationType;
-    }
-
-    public String getPhysicalRepresentativeGivenName() {
-        return physicalRepresentativeGivenName;
-    }
-
-    public void setPhysicalRepresentativeGivenName(String physicalRepresentativeGivenName) {
-        this.physicalRepresentativeGivenName = physicalRepresentativeGivenName;
-    }
-
-    public String getPhysicalRepresentativeFamilyName() {
-        return physicalRepresentativeFamilyName;
-    }
-
-    public void setPhysicalRepresentativeFamilyName(String physicalRepresentativeFamilyName) {
-        this.physicalRepresentativeFamilyName = physicalRepresentativeFamilyName;
-    }
-
-    public String getPhysicalRepresentativeBirthDate() {
-        return physicalRepresentativeBirthDate;
-    }
-
-    public void setPhysicalRepresentativeBirthDate(String physicalRepresentativeBirthDate) {
-        this.physicalRepresentativeBirthDate = physicalRepresentativeBirthDate;
-    }
-
-
-
-
-
 }
-- 
cgit v1.2.3