package flare.query { /** * Base class representing an aggregate query operator. */ public class AggregateExpression extends Expression { /** The sub-expression to aggregate. */ protected var _expr:Expression; /** The sub-expression to aggregate. */ public function get input():Expression { return _expr; } public function set input(e:*):void { _expr = Expression.expr(e); } /** * @inheritDoc */ public override function get numChildren():int { return 1; } /** * Creates a new AggregateExpression. * @param input the sub-expression to aggregate. */ public function AggregateExpression(input:*) { this.input = input; } /** * @inheritDoc */ public override function getChildAt(idx:int):Expression { return idx==0 ? _expr : null; } /** * @inheritDoc */ public override function setChildAt(idx:int, expr:Expression):Boolean { if (idx == 0) { _expr = expr; return true; } return false; } // -------------------------------------------------------------------- /** * Resets the aggregation computation. */ public function reset():void { // subclasses override this } /** * Increments the aggregation computation to include the input value. * @param value a value to include within the aggregation. */ public function aggregate(value:Object):void { // subclasses override this } } // end of class AggregateExpression }