package com.ausregistry.jtoolkit2.se; import javax.xml.xpath.XPathExpressionException; import com.ausregistry.jtoolkit2.xml.XMLDocument; /** * Use this to access availability data for contacts as provided in an EPP * contact check response compliant with RFC5730 and RFC5733. Such a service * element is sent by a compliant EPP server in response to a valid contact * check command, implemented by the ContactCheckCommand class. * * @see com.ausregistry.jtoolkit2.se.ContactCheckCommand */ public class ContactCheckResponse extends CheckResponse<String> { private static final long serialVersionUID = -8516482858545087664L; private static final String CON_CHKDATA_COUNT_EXPR = exprReplace(CHKDATA_COUNT_EXPR); private static final String CON_CHKDATA_IND_EXPR = exprReplace(CHKDATA_IND_EXPR); private static final String CON_CHKDATA_IDENT_EXPR = exprReplace(CHKDATA_IDENT_EXPR); private static final String CON_CHKDATA_AVAIL_EXPR = exprReplace(CHKDATA_AVAIL_EXPR); private static final String CON_CHKDATA_REASON_EXPR = exprReplace(CHKDATA_REASON_EXPR); public ContactCheckResponse() { super(StandardObjectType.CONTACT); } @Override public void fromXML(XMLDocument xmlDoc) { super.fromXML(xmlDoc); } @Override protected String chkDataCountExpr() { return CON_CHKDATA_COUNT_EXPR; } @Override protected String chkDataIndexExpr() { return CON_CHKDATA_IND_EXPR; } @Override protected String chkDataTextExpr() { return CON_CHKDATA_IDENT_EXPR; } @Override protected String chkDataAvailExpr() { return CON_CHKDATA_AVAIL_EXPR; } @Override protected String chkDataReasonExpr() { return CON_CHKDATA_REASON_EXPR; } @Override protected String getKey(final XMLDocument xmlDoc, final String qry) throws XPathExpressionException { return xmlDoc.getNodeValue(qry + chkDataTextExpr()); } private static String exprReplace(String expr) { return expr.replaceAll( OBJ, StandardObjectType.CONTACT.getName() ).replaceAll( "IDENT", "id"); } }