package com.ausregistry.jtoolkit2.se.sync; import java.util.GregorianCalendar; import com.ausregistry.jtoolkit2.EPPDateFormatter; import com.ausregistry.jtoolkit2.ErrorPkg; import com.ausregistry.jtoolkit2.se.Command; import com.ausregistry.jtoolkit2.se.CommandExtension; import com.ausregistry.jtoolkit2.se.ExtendedObjectType; import com.ausregistry.jtoolkit2.xml.XMLWriter; import org.w3c.dom.Element; /** * Models the ARI EPP Extension for synchronising the expiry date of a Domain Name. */ public class SyncDomainUpdateCommandExtension implements CommandExtension { private static final long serialVersionUID = -6020999765974335341L; private final String syncExpiryDate; /** * @param exDate The domain expiry date. Required. * @throws IllegalArgumentException if {@code exDate} is {@code null}. */ public SyncDomainUpdateCommandExtension(GregorianCalendar exDate) { if (exDate == null) { throw new IllegalArgumentException(ErrorPkg.getMessage("se.domain.update.sync.exDate.missing")); } syncExpiryDate = EPPDateFormatter.toXSDateTime(exDate); } @Override public void addToCommand(Command command) { final XMLWriter xmlWriter = command.getXmlWriter(); final Element extensionElement = command.getExtensionElement(); final Element updateElement = xmlWriter.appendChild(extensionElement, "update", ExtendedObjectType.SYNC.getURI()); final Element exDateElement = xmlWriter.appendChild(updateElement, "exDate"); exDateElement.setTextContent(syncExpiryDate); } }