package com.ausregistry.jtoolkit2.se;
import com.ausregistry.jtoolkit2.xml.XMLWriter;
import org.w3c.dom.Element;
/**
* Use this to set IDNA Domain extension properties for an EPP Domain Create
* command.
*
* @see com.ausregistry.jtoolkit2.se.DomainIdnaResponseExtension
*/
public final class DomainCreateIdnaCommandExtension implements CommandExtension {
private static final long serialVersionUID = -8945007354471832288L;
private String userForm;
private String language;
/**
* @throws IllegalArgumentException if {@code userForm} or {@code language} are {@code null} or empty.
*/
public DomainCreateIdnaCommandExtension(final String userForm, final String language) {
setUserForm(userForm);
setLanguage(language);
}
public void addToCommand(final Command command) {
final XMLWriter xmlWriter = command.getXmlWriter();
final Element extensionElement = command.getExtensionElement();
final Element createElement =
xmlWriter.appendChild(extensionElement, "create", ExtendedObjectType.IDNA_DOMAIN.getURI());
xmlWriter.appendChild(createElement, "userForm", userForm, "language", language);
}
private void setUserForm(final String userForm) {
if (userForm == null || userForm.isEmpty()) {
throw new IllegalArgumentException("User form must not be null or empty");
}
this.userForm = userForm;
}
private void setLanguage(final String language) {
if (language == null || language.isEmpty()) {
throw new IllegalArgumentException("Language must not be null or empty");
}
this.language = language;
}
}