package com.ausregistry.jtoolkit2.se;
import javax.xml.xpath.XPathExpressionException;
import com.ausregistry.jtoolkit2.xml.XMLDocument;
/**
* Use this to access availability data for domains as provided in an EPP
* domain check response compliant with RFC5730 and RFC5731. Such a service
* element is sent by a compliant EPP server in response to a valid domain
* check command, implemented by the DomainCheckCommand class.
*
* @see com.ausregistry.jtoolkit2.se.DomainCheckCommand
*/
public class DomainCheckResponse extends CheckResponse<String> {
private static final long serialVersionUID = -7501698464402166104L;
private static final String DOM_CHKDATA_COUNT_EXPR = exprReplace(CHKDATA_COUNT_EXPR);
private static final String DOM_CHKDATA_IND_EXPR = exprReplace(CHKDATA_IND_EXPR);
private static final String DOM_CHKDATA_IDENT_EXPR = exprReplace(CHKDATA_IDENT_EXPR);
private static final String DOM_CHKDATA_AVAIL_EXPR = exprReplace(CHKDATA_AVAIL_EXPR);
private static final String DOM_CHKDATA_REASON_EXPR = exprReplace(CHKDATA_REASON_EXPR);
public DomainCheckResponse() {
super(StandardObjectType.DOMAIN);
}
protected String chkDataCountExpr() {
return DOM_CHKDATA_COUNT_EXPR;
}
protected String chkDataIndexExpr() {
return DOM_CHKDATA_IND_EXPR;
}
protected String chkDataTextExpr() {
return DOM_CHKDATA_IDENT_EXPR;
}
protected String chkDataAvailExpr() {
return DOM_CHKDATA_AVAIL_EXPR;
}
protected String chkDataReasonExpr() {
return DOM_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.DOMAIN.getName()
).replaceAll(
"IDENT", "name");
}
}