package com.ausregistry.jtoolkit2.se;
import com.ausregistry.jtoolkit2.xml.XMLWriter;
import org.w3c.dom.Element;
/**
* This class models Naming Authority Pointer (NAPTR) resource records.
* Naming Authority Pointer (NAPTR) resource records are associated with
* ENUM domain names via the e164 extended create and update EPP commands.
* Instances of this class are used to construct NAPTR records to assign
* to ENUM domain objects, or to view attributes of NAPTR records already
* assigned to ENUM domain objects provisioned in an EPP Registry.
*
* @see com.ausregistry.jtoolkit2.se.EnumDomainCreateCommand Associate NAPTR
* records with a new ENUM domain object, rather than delegating to
* nameservers.
*
* @see com.ausregistry.jtoolkit2.se.EnumDomainUpdateCommand Add or remove
* NAPTR record associations to/from an ENUM domain object.
*
* @see com.ausregistry.jtoolkit2.se.EnumDomainInfoResponse Report assocations
* between a domain object and NAPTRs.
*/
public class NAPTR implements Appendable {
private static final long serialVersionUID = 4895525383333709751L;
private int order;
private int preference;
private String flags;
private String svc;
private String regex;
private String replacement;
public NAPTR(int order, int preference, char[] flags,
String service) {
this.order = order;
this.preference = preference;
this.flags = new String(flags);
this.svc = service;
}
public NAPTR(int order, int preference, char[] flags,
String service, String regex, String replacement) {
this(order, preference, flags, service);
this.regex = regex;
this.replacement = replacement;
}
public int getOrder() {
return order;
}
public int getPreference() {
return preference;
}
public String getFlags() {
return flags;
}
public String getService() {
return svc;
}
public String getRegex() {
return regex;
}
public String getReplacement() {
return replacement;
}
public Element appendToElement(XMLWriter xmlWriter, Element parent) {
Element e164Naptr = xmlWriter.appendChild(parent, "naptr");
xmlWriter.appendChild(e164Naptr, "order").setTextContent(
String.valueOf(order));
xmlWriter.appendChild(e164Naptr, "pref").setTextContent(
String.valueOf(preference));
xmlWriter.appendChild(e164Naptr, "flags").setTextContent(
flags);
xmlWriter.appendChild(e164Naptr, "svc").setTextContent(
svc);
if (regex != null) {
xmlWriter.appendChild(e164Naptr, "regex").setTextContent(
regex);
}
if (replacement != null) {
xmlWriter.appendChild(e164Naptr, "repl").setTextContent(
replacement);
}
return e164Naptr;
}
}