package com.ausregistry.jtoolkit2.se;
import org.w3c.dom.Element;
/**
* Use this to request the update of an ENUM domain object provisioned in an
* EPP Registry. Instances of this class generate RFC5730, RFC5731 and RFC4114-
* compliant ENUM domain update EPP command service elements via the toXML
* method. The response expected from a server should be handled by a Response
* object.
*
* @see com.ausregistry.jtoolkit2.se.Response
*/
public class EnumDomainUpdateCommand extends DomainUpdateCommand {
private static final long serialVersionUID = 5215585614104019868L;
/**
* Minimal constructor for an ENUM domain update command. No domain add,
* rem or chg elements are generated by instances constructed this way.
*
* @param addNaptrs a set of NAPTR records to be associated with this
* domain which are not already associated with the domain.
*
* @param remNaptrs a set of NAPTR records currently associated with this
* domain to be removed.
*/
public EnumDomainUpdateCommand(String name,
NAPTR[] addNaptrs, NAPTR[] remNaptrs) {
super(name);
setExtension(addNaptrs, remNaptrs);
}
/**
* Verbose constructor for an ENUM domain update command, supporting the
* modification of every attribute of an ENUM domain.
*/
public EnumDomainUpdateCommand(String name, String pw,
DomainAdd add, DomainRem rem, String registrantID,
NAPTR[] addNaptrs, NAPTR[] remNaptrs) {
super(name, pw, add, rem, registrantID);
setExtension(addNaptrs, remNaptrs);
}
private void setExtension(NAPTR[] addNaptrs, NAPTR[] remNaptrs) {
if (addNaptrs == null && remNaptrs == null) {
return;
}
extension = xmlWriter.appendChild(command, "extension");
Element extensionElement = xmlWriter.appendChild(extension, "update", ExtensionImpl.E164.getURI());
if (addNaptrs != null) {
Element e164Add = xmlWriter.appendChild(extensionElement, "add");
for (NAPTR naptr : addNaptrs) {
naptr.appendToElement(xmlWriter, e164Add);
}
}
if (remNaptrs != null) {
Element e164Add = xmlWriter.appendChild(extensionElement, "rem");
for (NAPTR naptr : remNaptrs) {
naptr.appendToElement(xmlWriter, e164Add);
}
}
}
}