Example #1
0
        public override void RemoveNode(Node node)
        {
            if (node is CharacterCollectionNode)
            {
                this.characterMetadata = null;
            }

            if (node is AdditionalDataBaseNode additionalDataNode)
            {
                this.additionalData.Remove(additionalDataNode);

                if (this.additionalData.Count == 0)
                {
                    this.additionalData = null;
                }
            }

            base.RemoveNode(node);
        }
Example #2
0
        public override Node AddNode(Type type)
        {
            var retval = base.AddNode(type);

            if (this.characterMetadata == null)
            {
                this.characterMetadata = this.nodes.Find(n => n is CharacterCollectionNode) as CharacterCollectionNode;
            }
            if (this.textStart == null)
            {
                this.textStart = this.nodes.Find(n => n is StartNode) as StartNode;
            }

            if (this.additionalData == null)
            {
                this.additionalData = new List <AdditionalDataBaseNode>();
            }
            if (retval is AdditionalDataBaseNode node)
            {
                this.additionalData.Add(node);
            }

            return(retval);
        }