46 lines
1.5 KiB
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;
|
|
}
|
|
}
|