예제 #1
0
 public CastNode(NodeBase target) : base(target)
 {
 }
예제 #2
0
        protected override NodeBase ReduceTerminalList(NodeBase node)
        {
            var values = node.GetTerminalValues <TIn>();

            return(CreateTerminal(values.Cast <TOut>()));
        }
예제 #3
0
 protected override NodeBase ReduceTerminalList(NodeBase node)
 {
     return(Null);
 }
예제 #4
0
 protected NodeBase(NodeBase target)
 {
     this.Target = target;
 }
예제 #5
0
 protected abstract NodeBase ReduceTerminalItem(NodeBase node);
예제 #6
0
 protected abstract NodeBase ReduceTerminalList(NodeBase node);
예제 #7
0
 public DistinctNode(NodeBase target) : this(target, null)
 {
 }
예제 #8
0
 public DistinctNode(NodeBase target, IEqualityComparer <TIn> equalityComparer)
     : base(target)
 {
     this.equalityComparer = equalityComparer ?? EqualityComparer <TIn> .Default;
 }
예제 #9
0
        protected override NodeBase ReduceTerminalItem(NodeBase node)
        {
            var value = node.GetTerminalValue <TIn>();

            return(value is TOut?CreateTerminal((TOut)(object)value) : Null);
        }
예제 #10
0
 public OfTypeNode(NodeBase target) : base(target)
 {
 }
예제 #11
0
        protected override NodeBase ReduceTerminalList(NodeBase node)
        {
            var values = node.GetTerminalValues <TIn>();

            return(CreateTerminal(values.Where(this.predicate)));
        }
예제 #12
0
        protected override NodeBase ReduceTerminalItem(NodeBase node)
        {
            var value = node.GetTerminalValue <TIn>();

            return(this.predicate(value) ? CreateTerminal(value) : Null);
        }
예제 #13
0
 public WhereNode(NodeBase target, Func <TIn, bool> predicate) : base(target)
 {
     this.predicate = predicate;
 }