package com.ausregistry.jtoolkit2.tmdb.xml; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import com.ausregistry.jtoolkit2.tmdb.model.TmHolder; import org.w3c.dom.Node; public class TmHolderXmlParser { public TmHolder parse(Node holderNode) throws XPathExpressionException { XPath xPath = XPathFactory.newInstance().newXPath(); TmHolder tmHolder = new TmHolder(); tmHolder.setEntitlement(xPath.evaluate("@entitlement", holderNode)); tmHolder.setName(xPath.evaluate("name", holderNode)); tmHolder.setOrganisation(xPath.evaluate("org", holderNode)); TmAddressXmlParser addressXmlParser = new TmAddressXmlParser(); Node addressNode = (Node) xPath.evaluate("addr", holderNode, XPathConstants.NODE); if (addressNode != null) { tmHolder.setAddress(addressXmlParser.parse(addressNode)); } tmHolder.setVoice(xPath.evaluate("voice", holderNode)); tmHolder.setVoiceExtension(xPath.evaluate("voice/@x", holderNode)); tmHolder.setFax(xPath.evaluate("fax", holderNode)); tmHolder.setFaxExtension(xPath.evaluate("fax/@x", holderNode)); tmHolder.setEmail(xPath.evaluate("email", holderNode)); return tmHolder; } }