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; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import java.io.StringReader; import java.util.HashMap; /** * Physical person representing physical person * @author bsuzic * Date: 4/30/14, Time: 11:29 AM */ 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; 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)))); setPhyPersMandatorIdentificationValue(xPath.evaluate(S2Constants.MANDATE_MANDATOR_PHYPERS_IDVALUE_QUERY, new InputSource(new StringReader(mandate)))); setPhyPersMandatorGivenName(xPath.evaluate(S2Constants.MANDATE_MANDATOR_PHYPERS_GIVENNAME_QUERY, new InputSource(new StringReader(mandate)))); setPhyPersMandatorFamilyName(xPath.evaluate(S2Constants.MANDATE_MANDATOR_PHYPERS_FAMILYNAME_QUERY, new InputSource(new StringReader(mandate)))); setPhyPersMandatorBirthDate(xPath.evaluate(S2Constants.MANDATE_MANDATOR_PHYPERS_DATEOFBIRTH_QUERY, new InputSource(new StringReader(mandate)))); setMandateIssueDate(xPath.evaluate(S2Constants.MANDATE_ISSUEDDATE_QUERY, new InputSource(new StringReader(mandate)))); setMandateIssuePlace(xPath.evaluate(S2Constants.MANDATE_ISSUEDPLACE_QUERY, new InputSource(new StringReader(mandate)))); setMandateIssueTime(xPath.evaluate(S2Constants.MANDATE_ISSUEDTIME_QUERY, new InputSource(new StringReader(mandate)))); setMandateValidFrom(xPath.evaluate(S2Constants.MANDATE_SIMPLEMANDATECONTENT_VALIDFROM_QUERY, new InputSource(new StringReader(mandate)))); setMandateValidTo(xPath.evaluate(S2Constants.MANDATE_SIMPLEMANDATECONTENT_VALIDTO_QUERY, new InputSource(new StringReader(mandate)))); setPhysicalRepresentativeBirthDate(xPath.evaluate(S2Constants.MANDATE_REPRESENTATIVE_PHYPERS_DATEOFBIRTH_QUERY, new InputSource(new StringReader(mandate)))); setPhysicalRepresentativeFamilyName(xPath.evaluate(S2Constants.MANDATE_REPRESENTATIVE_PHYPERS_FAMILYNAME_QUERY, new InputSource(new StringReader(mandate)))); setPhysicalRepresentativeGivenName(xPath.evaluate(S2Constants.MANDATE_REPRESENTATIVE_PHYPERS_GIVENNAME_QUERY, new InputSource(new StringReader(mandate)))); setPhysicalRepresentativeIdentificationType(xPath.evaluate(S2Constants.MANDATE_REPRESENTATIVE_PHYPERS_IDTYPE_QUERY, new InputSource(new StringReader(mandate)))); setPhysicalRepresentativeIdentificationValue(xPath.evaluate(S2Constants.MANDATE_REPRESENTATIVE_PHYPERS_IDVALUE_QUERY, new InputSource(new StringReader(mandate)))); setSimpleMandateContent(xPath.evaluate(S2Constants.MANDATE_SIMPLEMANDATECONTENT_TXTDESC_QUERY, new InputSource(new StringReader(mandate)))); // check if all necessary fields are present 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 String getPhyPersMandatorGivenName() { return phyPersMandatorGivenName; } public void setPhyPersMandatorGivenName(String phyPersMandatorGivenName) { this.phyPersMandatorGivenName = phyPersMandatorGivenName; } public String getPhyPersMandatorFamilyName() { return phyPersMandatorFamilyName; } public void setPhyPersMandatorFamilyName(String phyPersMandatorFamilyName) { this.phyPersMandatorFamilyName = phyPersMandatorFamilyName; } public String getPhyPersMandatorBirthDate() { return phyPersMandatorBirthDate; } public void setPhyPersMandatorBirthDate(String phyPersMandatorBirthDate) { this.phyPersMandatorBirthDate = phyPersMandatorBirthDate; } public String getPhyPersMandatorIdentificationValue() { return phyPersMandatorIdentificationValue; } public void setPhyPersMandatorIdentificationValue(String phyPersMandatorIdentificationValue) { this.phyPersMandatorIdentificationValue = phyPersMandatorIdentificationValue; } public String getPhyPersMandatorIdentificationType() { return phyPersMandatorIdentificationType; } public void setPhyPersMandatorIdentificationType(String phyPersMandatorIdentificationType) { this.phyPersMandatorIdentificationType = phyPersMandatorIdentificationType; } }