java-org.hwo.servicelink/src/org/hwo/servicelink/register/ServiceRegisterInstance.java

46 lines
1.5 KiB
Java

package org.hwo.servicelink.register;
import javax.xml.xpath.XPathConstants;
import org.w3c.dom.Node;
public class ServiceRegisterInstance {
ServiceRegisterList serviceRegisterList;
RegisterType registerType;
String label;
Integer registerAddress;
public ServiceRegisterInstance(ServiceRegisterList serviceRegisterList){
this.serviceRegisterList = serviceRegisterList;
}
public RegisterType getRegisterType() {
return registerType;
}
public void setRegisterType(RegisterType registerType) {
this.registerType = registerType;
}
public static ServiceRegisterInstance fromRegisterNode(ServiceRegisterList serviceRegisterList,Node registerNode){
ServiceRegisterInstance sri = new ServiceRegisterInstance(serviceRegisterList);
RegisterType rti = serviceRegisterList.getRegistry().getTypeRegistry().createRegisterTypeInstance(serviceRegisterList, registerNode);
sri.setRegisterType(rti);
try {
Node labelNode = (Node)serviceRegisterList.getRegistry().getXpath().evaluate("Label", registerNode, XPathConstants.NODE);
Node addressNode = (Node)serviceRegisterList.getRegistry().getXpath().evaluate("Address", registerNode, XPathConstants.NODE);
sri.label = labelNode.getFirstChild().getNodeValue();
sri.registerAddress = Integer.decode(addressNode.getFirstChild().getNodeValue());
} catch (Exception e){
e.printStackTrace();
}
System.err.println(String.format("ServiceRegisterInstance: created type: %s", rti.getName()));
return sri;
}
}