protected override void PopulateClone(IStalkNode node)
        {
            var dcln = (DoubleChildLogicalNode)node;

            dcln.LeftChildNode  = (IStalkNode)this.LeftChildNode.Clone();
            dcln.RightChildNode = (IStalkNode)this.RightChildNode.Clone();
        }
예제 #2
0
        public XmlElement ToXml(XmlDocument doc, IStalkNode node)
        {
            XmlElement element;

            var logicalNode = node as LogicalNode;

            if (logicalNode != null)
            {
                element = this.LogicalToXml(doc, logicalNode);
            }
            else
            {
                var leafNode = node as LeafNode;
                if (leafNode != null)
                {
                    element = this.LeafToXml(doc, leafNode);
                }
                else
                {
                    throw new XmlException();
                }
            }

            if (!string.IsNullOrWhiteSpace(node.Comment))
            {
                element.SetAttribute("comment", node.Comment);
            }

            return(element);
        }
        protected override void PopulateClone(IStalkNode node)
        {
            var dcln = (InfixNumericLogicalNode)node;

            dcln.LeftChildNode  = (INumberProviderNode)this.LeftChildNode.Clone();
            dcln.RightChildNode = (INumberProviderNode)this.RightChildNode.Clone();
            dcln.Operator       = this.Operator;
        }
예제 #4
0
        public bool?DualOperatorTest(IStalkNode a)
        {
            var node = new NotNode();

            node.ChildNode = a;

            return(node.Match(new RecentChange(""), false));
        }
예제 #5
0
        public bool?NonExpiredOperatorTest(IStalkNode a)
        {
            var node = new ExpiryNode
            {
                Expiry = DateTime.UtcNow.Add(new TimeSpan(0, 1, 0))
            };

            node.ChildNode = a;

            return(node.Match(new RecentChange(""), false));
        }
예제 #6
0
        public bool?DualOperatorTest(IStalkNode a, IStalkNode b, Mock <IStalkNode> tm, Mock <IStalkNode> fm)
        {
            var node = new XorNode();

            node.LeftChildNode  = a;
            node.RightChildNode = b;

            tm.Setup(x => x.Match(It.IsAny <IRecentChange>(), It.IsAny <bool>())).Returns(true);
            fm.Setup(x => x.Match(It.IsAny <IRecentChange>(), It.IsAny <bool>())).Returns(false);

            return(node.Match(new RecentChange(""), false));
        }
        protected override void PopulateClone(IStalkNode node)
        {
            var scln = (SingleChildLogicalNode)node;

            scln.ChildNode = (IStalkNode)this.ChildNode.Clone();
        }
예제 #8
0
 protected virtual void PopulateClone(IStalkNode node)
 {
 }
예제 #9
0
 internal void SetStalkTree(IStalkNode tree)
 {
     this.baseNode = tree;
 }
        protected override void PopulateClone(IStalkNode node)
        {
            var mcln = (MultiChildLogicalNode)node;

            mcln.ChildNodes = mcln.ChildNodes.Select(x => (IStalkNode)x.Clone()).ToList();
        }