package com.ausregistry.jtoolkit2.se.tmch;
import javax.xml.bind.DatatypeConverter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Logger;
import com.ausregistry.jtoolkit2.xml.XMLDocument;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* Represents a trademark from the Trademark Clearing House extension, represented by the "trademark" element
* of type "trademarkType" in the "urn:ietf:params:xml:ns:mark-1.0" namespace, defined in the "mark-1.0.xsd" schema.
*
*/
public class Trademark extends AbstractMark {
private static final String JURISDICTION_EXPR = "mark:jurisdiction/text()";
private static final String CLASS_NODE_LOCAL_NAME = "class";
private static final String AP_ID_EXPR = "mark:apId/text()";
private static final String AP_DATE_EXPR = "mark:apDate/text()";
private static final String REG_NUM_EXPR = "mark:regNum/text()";
private static final String REG_DATE_EXPR = "mark:regDate/text()";
private static final String EX_DATE_EXPR = "mark:exDate/text()";
private Logger maintLogger = Logger.getLogger(getClass().getPackage().getName() + ".maint");
private String jurisdiction;
private List<String> classes = new ArrayList<String>();
private String apId;
private Date apDate;
private String regNum;
private Date regDate;
private Date exDate;
@Override
public void fromXML(XMLDocument xmlDocument) {
super.fromXML(xmlDocument);
try {
Node element = xmlDocument.getElement(".");
NodeList childNodes = element.getChildNodes();
for (int i = 0; i < childNodes.getLength(); i++) {
Node item = childNodes.item(i);
if (CLASS_NODE_LOCAL_NAME.equals(item.getLocalName())) {
classes.add(item.getTextContent());
}
}
jurisdiction = xmlDocument.getNodeValue(JURISDICTION_EXPR);
apId = xmlDocument.getNodeValue(AP_ID_EXPR);
regDate = DatatypeConverter.parseDate(xmlDocument.getNodeValue(REG_DATE_EXPR)).getTime();
if (xmlDocument.getNodeValue(AP_DATE_EXPR) != null) {
apDate = DatatypeConverter.parseDate(xmlDocument.getNodeValue(AP_DATE_EXPR)).getTime();
}
regNum = xmlDocument.getNodeValue(REG_NUM_EXPR);
exDate = DatatypeConverter.parseDate(xmlDocument.getNodeValue(EX_DATE_EXPR)).getTime();
} catch (Exception e) {
maintLogger.warning(e.getMessage());
}
}
public String getJurisdiction() {
return jurisdiction;
}
public void setJurisdiction(String jurisdiction) {
this.jurisdiction = jurisdiction;
}
public List<String> getClasses() {
return classes;
}
public void setClasses(List<String> classes) {
this.classes = classes;
}
public String getApId() {
return apId;
}
public void setApId(String apId) {
this.apId = apId;
}
public Date getApDate() {
return apDate;
}
public void setApDate(Date apDate) {
this.apDate = apDate;
}
public String getRegNum() {
return regNum;
}
public void setRegNum(String regNum) {
this.regNum = regNum;
}
public Date getRegDate() {
return regDate;
}
public void setRegDate(Date regDate) {
this.regDate = regDate;
}
public Date getExDate() {
return exDate;
}
public void setExDate(Date exDate) {
this.exDate = exDate;
}
}