/// <summary> /// Initializes the instance from another instance. /// </summary> protected override void Initialize(ISystemContext context, NodeState source) { BaseTypeState type = source as BaseTypeState; if (type != null) { m_superTypeId = type.m_superTypeId; m_isAbstract = type.m_isAbstract; } base.Initialize(context, source); }
/// <summary> /// Makes a copy of the node and all children. /// </summary> /// <returns> /// A new object that is a copy of this instance. /// </returns> public new object MemberwiseClone() { BaseTypeState clone = new BaseTypeState(this.NodeClass); if (m_children != null) { clone.m_children = new List <BaseInstanceState>(m_children.Count); for (int ii = 0; ii < m_children.Count; ii++) { BaseInstanceState child = (BaseInstanceState)m_children[ii].MemberwiseClone(); clone.m_children.Add(child); } } clone.m_changeMasks = NodeStateChangeMasks.None; return(clone); }
/// <summary> /// Makes a copy of the node and all children. /// </summary> /// <returns> /// A new object that is a copy of this instance. /// </returns> public new object MemberwiseClone() { BaseTypeState clone = new BaseTypeState(this.NodeClass); if (m_children != null) { clone.m_children = new List<BaseInstanceState>(m_children.Count); for (int ii = 0; ii < m_children.Count; ii++) { BaseInstanceState child = (BaseInstanceState)m_children[ii].MemberwiseClone(); clone.m_children.Add(child); } } clone.m_changeMasks = NodeStateChangeMasks.None; return clone; }
/// <summary> /// Recursively adds the types to the type tree. /// </summary> protected void AddTypesToTypeTree(BaseTypeState type) { if (!NodeId.IsNull(type.SuperTypeId)) { if (!Server.TypeTree.IsKnown(type.SuperTypeId)) { AddTypesToTypeTree(type.SuperTypeId); } } if (type.NodeClass != NodeClass.ReferenceType) { Server.TypeTree.AddSubtype(type.NodeId, type.SuperTypeId); } else { Server.TypeTree.AddReferenceSubtype(type.NodeId, type.SuperTypeId, type.BrowseName); } }