|
@@ -8,11 +8,16 @@ import { UAExtension } from "./UAExtension";
|
|
import { UAUserWriteMask } from "./UAUserWriteMask";
|
|
import { UAUserWriteMask } from "./UAUserWriteMask";
|
|
import { UAWriteMask } from "./UAWriteMask";
|
|
import { UAWriteMask } from "./UAWriteMask";
|
|
import { UAAccessRestriction } from "./UAAccessRestriction";
|
|
import { UAAccessRestriction } from "./UAAccessRestriction";
|
|
|
|
+import { type IAddressSpace } from "./IAddressSpace";
|
|
export class UABaseNode implements IToXML{
|
|
export class UABaseNode implements IToXML{
|
|
|
|
|
|
|
|
+ public static nullBaseNode=new UABaseNode({browseName: "", addressSpace: {} as IAddressSpace, nodeId: NodeId.nullNodeId});
|
|
|
|
+
|
|
|
|
+
|
|
public nodeId: NodeId;
|
|
public nodeId: NodeId;
|
|
public nodeClass="UABaseNode";
|
|
public nodeClass="UABaseNode";
|
|
public browseName: string;
|
|
public browseName: string;
|
|
|
|
+ public addressSpace?: IAddressSpace
|
|
public displayName?: string; //LocText
|
|
public displayName?: string; //LocText
|
|
public description?: string; //LocText
|
|
public description?: string; //LocText
|
|
public symbolicName?: string; //SymbolicName
|
|
public symbolicName?: string; //SymbolicName
|
|
@@ -26,17 +31,16 @@ export class UABaseNode implements IToXML{
|
|
public rolePermissions: UARolePermission[]=[];
|
|
public rolePermissions: UARolePermission[]=[];
|
|
public extensions: UAExtension[]=[];
|
|
public extensions: UAExtension[]=[];
|
|
public references: UAReference[]=[];
|
|
public references: UAReference[]=[];
|
|
- public opts: string[]=[];
|
|
|
|
-
|
|
|
|
|
|
+ public opts: string[]=[];
|
|
|
|
|
|
constructor(options: UABaseNodeOptions) {
|
|
constructor(options: UABaseNodeOptions) {
|
|
this.nodeId=options.nodeId;
|
|
this.nodeId=options.nodeId;
|
|
this.browseName=options.browseName;
|
|
this.browseName=options.browseName;
|
|
|
|
+ this.addressSpace=options.addressSpace;
|
|
this.displayName=options.displayName;
|
|
this.displayName=options.displayName;
|
|
this.references=options.references||[];
|
|
this.references=options.references||[];
|
|
}
|
|
}
|
|
|
|
|
|
- public static nullBaseNode=new UABaseNode({browseName: "", nodeId: NodeId.nullNodeId});
|
|
|
|
|
|
|
|
reIndex(nst: NamespaceTable, onst: NamespaceTable) {
|
|
reIndex(nst: NamespaceTable, onst: NamespaceTable) {
|
|
const nsName=onst.getUri(this.nodeId.namespace);
|
|
const nsName=onst.getUri(this.nodeId.namespace);
|
|
@@ -137,7 +141,7 @@ export class UABaseNode implements IToXML{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- static fromXML(xmlObject: any): UABaseNode{
|
|
|
|
|
|
+ static fromXML(xmlObject: any, addressSpace: IAddressSpace): UABaseNode{
|
|
const xmlReferences=xmlObject['References']||[];
|
|
const xmlReferences=xmlObject['References']||[];
|
|
const references:UAReference[]=[];
|
|
const references:UAReference[]=[];
|
|
const nodeId=coerceNodeId(xmlObject['@_NodeId']);
|
|
const nodeId=coerceNodeId(xmlObject['@_NodeId']);
|
|
@@ -147,7 +151,9 @@ export class UABaseNode implements IToXML{
|
|
const ua=new UABaseNode({nodeId: nodeId,
|
|
const ua=new UABaseNode({nodeId: nodeId,
|
|
browseName: xmlObject['@_BrowseName'],
|
|
browseName: xmlObject['@_BrowseName'],
|
|
displayName: xmlObject['DisplayName']['#text'],
|
|
displayName: xmlObject['DisplayName']['#text'],
|
|
- references: references});
|
|
|
|
|
|
+ references: references,
|
|
|
|
+ addressSpace: addressSpace
|
|
|
|
+ });
|
|
|
|
|
|
|
|
|
|
return ua;
|
|
return ua;
|
|
@@ -171,9 +177,10 @@ export class UABaseNode implements IToXML{
|
|
|
|
|
|
export interface UABaseNodeOptions {
|
|
export interface UABaseNodeOptions {
|
|
browseName: string;
|
|
browseName: string;
|
|
- namespace?: string;
|
|
|
|
nodeId: NodeId;
|
|
nodeId: NodeId;
|
|
|
|
+ namespace?: string;
|
|
references?: UAReference[];
|
|
references?: UAReference[];
|
|
displayName?: string;
|
|
displayName?: string;
|
|
- description?: string
|
|
|
|
|
|
+ description?: string;
|
|
|
|
+ addressSpace: IAddressSpace;
|
|
}
|
|
}
|