UAObjectType.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. import { XMLElem } from "@/util/XmlElem";
  2. import type { NamespaceTable } from "./NameSpaceTable";
  3. import { UABaseNode, type UABaseNodeOptions } from "./UABaseNode";
  4. import type { IAddressSpace } from "./IAddressSpace";
  5. export class UAObjectType extends UABaseNode{
  6. public isAbstract: boolean;
  7. constructor(options: UAObjectTypeOptions) {
  8. super(options)
  9. Object.assign(this, options);
  10. this.nodeClass="UAObjectType";
  11. this.isAbstract=options.isAbstract||false;
  12. }
  13. static fromXML(xmlObjType: any, addressSpace: IAddressSpace): UAObjectType{
  14. const bn=super.fromXML(xmlObjType, addressSpace)
  15. return new UAObjectType(bn as UABaseNodeOptions);
  16. }
  17. toXML(lnst:NamespaceTable, gnst:NamespaceTable): XMLElem {
  18. const elem =super.toXML(lnst, gnst);
  19. elem.name=this.nodeClass;
  20. elem.attr('IsAbstract', this.isAbstract);
  21. return elem;
  22. }
  23. }
  24. export interface UAObjectTypeOptions extends UABaseNodeOptions{
  25. isAbstract?: boolean
  26. }