package flare.query
{
/**
* Aggregate operator for computing the sum of a set of values.
*/
public class Sum extends AggregateExpression
{
private var _sum:Number;
/**
* Creates a new Sum operator.
* @param input the sub-expression of which to compute the sum
*/
public function Sum(input:*) {
super(input);
}
/**
* @inheritDoc
*/
public override function reset():void
{
_sum = 0;
}
/**
* @inheritDoc
*/
public override function eval(o:Object=null):*
{
return _sum;
}
/**
* @inheritDoc
*/
public override function aggregate(value:Object):void
{
var x:Number = Number(_expr.eval(value));
if (!isNaN(x)) {
_sum += x;
}
}
} }