package com.ausregistry.jtoolkit2.se.tmch; import javax.xml.xpath.XPathExpressionException; import java.util.logging.Logger; import com.ausregistry.jtoolkit2.xml.XMLDocument; import org.w3c.dom.Element; import org.w3c.dom.Node; /** * Represents a holder from the Trademark Clearing House extension, * represented by the "holder" element of type "holderType" * in the "urn:ietf:params:xml:ns:mark-1.0" namespace, defined in the "mark-1.0.xsd" schema. * */ public class MarkHolder { private static final String ENTITLEMENT_EXPR = "@entitlement"; private static final String ORG_EXPR = "mark:org/text()"; private static final String NAME_EXPR = "mark:name/text()"; private static final String VOICE_EXPR = "mark:voice/text()"; private static final String VOICE_EXT_EXPR = "mark:voice/@x"; private static final String FAX_EXPR = "mark:fax/text()"; private static final String FAX_EXT_EXPR = "mark:fax/@x"; private static final String ADDRESS_EXPR = "mark:addr"; private static final String EMAIL_EXPR = "mark:email"; private Logger maintLogger = Logger.getLogger(getClass().getPackage().getName() + ".maint"); private MarkHolderEntitlement entitlement; private String name; private String org; private MarkAddress address; private String voice; private String voiceExt; private String fax; private String faxExt; private String email; public MarkHolderEntitlement getEntitlement() { return entitlement; } public void fromXML(XMLDocument xmlDocument) { try { entitlement = MarkHolderEntitlement.valueOf(xmlDocument.getNodeValue(ENTITLEMENT_EXPR)); name = xmlDocument.getNodeValue(NAME_EXPR); org = xmlDocument.getNodeValue(ORG_EXPR); voice = xmlDocument.getNodeValue(VOICE_EXPR); voiceExt = xmlDocument.getNodeValue(VOICE_EXT_EXPR); fax = xmlDocument.getNodeValue(FAX_EXPR); faxExt = xmlDocument.getNodeValue(FAX_EXT_EXPR); email = xmlDocument.getNodeValue(EMAIL_EXPR); Node addressElement = xmlDocument.getElement(ADDRESS_EXPR); if (addressElement != null) { address = new MarkAddress(); address.fromXML(new XMLDocument((Element) addressElement)); } } catch (XPathExpressionException e) { maintLogger.warning(e.getMessage()); } } public void setEntitlement(MarkHolderEntitlement entitlement) { this.entitlement = entitlement; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getOrg() { return org; } public void setOrg(String org) { this.org = org; } public MarkAddress getAddress() { return address; } public void setAddress(MarkAddress address) { this.address = address; } public String getVoice() { return voice; } public void setVoice(String voice) { this.voice = voice; } public String getVoiceExt() { return voiceExt; } public void setVoiceExt(String voiceExt) { this.voiceExt = voiceExt; } public String getFax() { return fax; } public void setFax(String fax) { this.fax = fax; } public String getFaxExt() { return faxExt; } public void setFaxExt(String faxExt) { this.faxExt = faxExt; } public String getEmail() { return email; } }