package com.ausregistry.jtoolkit2.se; import com.ausregistry.jtoolkit2.xml.XMLDocument; import javax.xml.xpath.XPathExpressionException; /** * Extension of the domain mapping of the EPP info response, as defined in * RFC5730 and RFC5731, to .ae domain names, the specification of which is in * the XML schema definition urn:X-ae:params:xml:ns:aeext-1.0. Instances of this * class provide an interface to access all of the information available through * EPP for a .ae domain name. This relies on the instance first being * initialised by a suitable EPP domain info response using the method fromXML. * For flexibility, this implementation extracts the data from the response * using XPath queries, the expressions for which are defined statically. * */ public final class AeDomainInfoResponse extends DomainInfoResponse { private static final long serialVersionUID = 6585390748052827078L; private static final String AEEXT_EXPR = RESPONSE_EXPR + "/e:extension/aeext:infData/aeext:aeProperties"; private static final String AE_REGISTRANT_NAME_EXPR = AEEXT_EXPR + "/aeext:registrantName/text()"; private static final String AE_REGISTRANT_ID_EXPR = AEEXT_EXPR + "/aeext:registrantID/text()"; private static final String AE_REGISTRANT_ID_TYPE_EXPR = AEEXT_EXPR + "/aeext:registrantID/@type"; private static final String AE_ELI_TYPE_EXPR = AEEXT_EXPR + "/aeext:eligibilityType/text()"; private static final String AE_ELI_NAME_EXPR = AEEXT_EXPR + "/aeext:eligibilityName/text()"; private static final String AE_ELI_ID_EXPR = AEEXT_EXPR + "/aeext:eligibilityID/text()"; private static final String AE_ELI_ID_TYPE_EXPR = AEEXT_EXPR + "/aeext:eligibilityID/@type"; private static final String AE_POLICY_REASON_EXPR = AEEXT_EXPR + "/aeext:policyReason/text()"; private String registrantName; private String registrantID; private String registrantIDType; private String eligibilityType; private String eligibilityName; private String eligibilityID; private String eligibilityIDType; private String polReason; private int policyReason; public AeDomainInfoResponse() { super(); } public String getRegistrantName() { return registrantName; } public String getAeRegistrantID() { return registrantID; } public String getRegistrantIDType() { return registrantIDType; } public String getEligibilityType() { return eligibilityType; } public String getEligibilityName() { return eligibilityName; } public String getEligibilityID() { return eligibilityID; } public String getEligibilityIDType() { return eligibilityIDType; } public int getPolicyReason() { return policyReason; } @Override public void fromXML(XMLDocument xmlDoc) { super.fromXML(xmlDoc); if (!resultArray[0].succeeded()) { return; } try { registrantName = xmlDoc.getNodeValue(AE_REGISTRANT_NAME_EXPR); registrantID = xmlDoc.getNodeValue(AE_REGISTRANT_ID_EXPR); registrantIDType = xmlDoc.getNodeValue(AE_REGISTRANT_ID_TYPE_EXPR); eligibilityType = xmlDoc.getNodeValue(AE_ELI_TYPE_EXPR); eligibilityName = xmlDoc.getNodeValue(AE_ELI_NAME_EXPR); eligibilityID = xmlDoc.getNodeValue(AE_ELI_ID_EXPR); eligibilityIDType = xmlDoc.getNodeValue(AE_ELI_ID_TYPE_EXPR); polReason = xmlDoc.getNodeValue(AE_POLICY_REASON_EXPR); if (polReason != null) { policyReason = Integer.parseInt(polReason); } } catch (XPathExpressionException xpee) { maintLogger.warning(xpee.getMessage()); } } @Override public String toString() { String retval = super.toString(); retval += "(registrant-name = " + registrantName + ")(eligibility-type = " + eligibilityType + ")(policy-reason = " + polReason + ")"; if (registrantID != null) { retval += "(registrant-id = " + registrantID + " [" + registrantIDType + "])"; } if (eligibilityName != null) { retval += "(eligibility-name = " + eligibilityName + ")"; } if (eligibilityID != null) { retval += "(eligibility-id = " + eligibilityID + " [" + eligibilityIDType + "])"; } return retval; } }