package com.ausregistry.jtoolkit2.se;
import javax.xml.xpath.XPathExpressionException;
import com.ausregistry.jtoolkit2.xml.XMLDocument;
/**
* Use this to access availability data for hosts as provided in an EPP host
* check response compliant with RFC5730 and RFC5732. Such a service element is
* sent by a compliant EPP server in response to a valid host check command,
* implemented by the HostCheckCommand class.
*
* @see com.ausregistry.jtoolkit2.se.HostCheckCommand
*/
public class HostCheckResponse extends CheckResponse<String> {
protected static final String HOS_CHKDATA_COUNT_EXPR = exprReplace(CHKDATA_COUNT_EXPR);
protected static final String HOS_CHKDATA_IND_EXPR = exprReplace(CHKDATA_IND_EXPR);
protected static final String HOS_CHKDATA_IDENT_EXPR = exprReplace(CHKDATA_IDENT_EXPR);
protected static final String HOS_CHKDATA_AVAIL_EXPR = exprReplace(CHKDATA_AVAIL_EXPR);
protected static final String HOS_CHKDATA_REASON_EXPR = exprReplace(CHKDATA_REASON_EXPR);
private static final long serialVersionUID = 1708250661983439346L;
public HostCheckResponse() {
super(StandardObjectType.HOST);
}
protected static String exprReplace(String expr) {
return expr.replaceAll(OBJ, StandardObjectType.HOST.getName()).replaceAll("IDENT", "name");
}
protected String chkDataCountExpr() {
return HOS_CHKDATA_COUNT_EXPR;
}
protected String chkDataIndexExpr() {
return HOS_CHKDATA_IND_EXPR;
}
protected String chkDataTextExpr() {
return HOS_CHKDATA_IDENT_EXPR;
}
protected String chkDataAvailExpr() {
return HOS_CHKDATA_AVAIL_EXPR;
}
protected String chkDataReasonExpr() {
return HOS_CHKDATA_REASON_EXPR;
}
@Override
protected String getKey(final XMLDocument xmlDoc, final String qry) throws XPathExpressionException {
return xmlDoc.getNodeValue(qry + chkDataTextExpr());
}
}