/// <summary> /// Creates a <see cref="FilterClause"/>. /// </summary> /// <param name="expression">The filter expression - this should evaluate to a single boolean value. Cannot be null.</param> /// <param name="rangeVariable">The parameter for the expression which represents a single value from the collection. Cannot be null.</param> /// <exception cref="System.ArgumentNullException">Throws if the input expression or rangeVariable is null.</exception> public FilterClause(SingleValueNode expression, RangeVariable rangeVariable) { ExceptionUtils.CheckArgumentNotNull(expression, "expression"); ExceptionUtils.CheckArgumentNotNull(rangeVariable, "parameter"); this.expression = expression; this.rangeVariable = rangeVariable; }
/// <summary> /// Creates an <see cref="OrderByClause"/>. /// </summary> /// <param name="thenBy">The next orderby to perform after performing this orderby, can be null in the case of only a single orderby expression.</param> /// <param name="expression">The order-by expression. Cannot be null.</param> /// <param name="direction">The direction to order.</param> /// <param name="rangeVariable">The rangeVariable for the expression which represents a single value from the collection we iterate over. </param> /// <exception cref="System.ArgumentNullException">Throws if the input expression or rangeVariable is null.</exception> public OrderByClause(OrderByClause thenBy, SingleValueNode expression, OrderByDirection direction, RangeVariable rangeVariable) { ExceptionUtils.CheckArgumentNotNull(expression, "expression"); ExceptionUtils.CheckArgumentNotNull(rangeVariable, "parameter"); this.thenBy = thenBy; this.expression = expression; this.direction = direction; this.rangeVariable = rangeVariable; }
/// <summary> /// Create an AllNode /// </summary> /// <param name="rangeVariables">The name of the rangeVariables list.</param> /// <param name="currentRangeVariable">The new range variable being added by this all node</param> public AllNode(Collection <RangeVariable> rangeVariables, RangeVariable currentRangeVariable) : base(rangeVariables, currentRangeVariable) { }
/// <summary> /// Create a AnyNode /// </summary> /// <param name="parameters">The name of the parameter list.</param> /// <param name="currentRangeVariable">The name of the new range variable being added by this AnyNode</param> public AnyNode(Collection <RangeVariable> parameters, RangeVariable currentRangeVariable) : base(parameters, currentRangeVariable) { }
/// <summary> /// Create a LambdaNode /// </summary> /// <param name="rangeVariables">The collection of rangeVariables in scope for this Any or All.</param> /// <param name="currentRangeVariable">The newest range variable added for by this Any or All.</param> protected LambdaNode(Collection <RangeVariable> rangeVariables, RangeVariable currentRangeVariable) { this.rangeVariables = rangeVariables; this.currentRangeVariable = currentRangeVariable; }