コード例 #1
0
ファイル: TypeDesign.cs プロジェクト: lwh125630hui/ASMD
        /// <summary>
        /// Adds the node to the address space <see cref="IAddressSpaceCreator" />.
        /// </summary>
        /// <param name="space">The address space as a tree of nodes.</param>
        protected override void AddNode2AddressSpace(IAddressSpaceCreator space)
        {
            int _addressSpaceIndex = space.AddNode2AddressSpace(this, SymbolicName.ToString());

            foreach (Reference item in this.References)
            {
                space.AddReference(_addressSpaceIndex, item.Wrapper.ReferenceType.XmlQualifiedName, item.Wrapper.IsInverse, item.Wrapper.TargetId.XmlQualifiedName);
            }
            IInstanceNodesCollection children = AddChildren(space, SymbolicName, _addressSpaceIndex, false);

            children.RegisterChildrenInAddressSpace();
            space.AddReference(_addressSpaceIndex, BuildInXmlQualifiedNames.HasSubtype, true, this.Wrapper.BaseType.ValueOrDefault);
        }
コード例 #2
0
ファイル: InstanceDesign.cs プロジェクト: mpostol/ASMD
        /// <summary>
        /// Processes the node.
        /// </summary>
        /// <param name="space">The address space.</param>
        /// <param name="nodeContext">The parent.</param>
        /// <param name="modelParent">The model parent.</param>
        /// <param name="isInstanceDeclaration">if set to <c>true</c> it is instance declaration.</param>
        void IInstanceNode.CompileNode(IAddressSpaceCreator space, IInstanceNodeContext nodeContext, bool isInstanceDeclaration)
        {
            IInstanceNodesCollection children = AddChildren(space, nodeContext.NodeID, nodeContext.AddressSpaceIndex, isInstanceDeclaration);

            InstanceDeclarations(children, nodeContext);
            children.RegisterChildrenInAddressSpace();
            foreach (Reference item in this.References)
            {
                space.AddReference(nodeContext.AddressSpaceIndex, item.Wrapper.ReferenceType.XmlQualifiedName, item.Wrapper.IsInverse, item.Wrapper.TargetId.XmlQualifiedName);
            }
            space.AddReference(nodeContext.AddressSpaceIndex, BuildInXmlQualifiedNames.HasTypeDefinition, false, nodeContext.TypeDefinition);
            nodeContext.AddModelingRule();
        }