package flare.query
{
/**
* Aggregate operator for counting the number of items in a set of values.
*/
public class Count extends AggregateExpression
{
private var _count:int;
/**
* Creates a new Count operator
* @param input the sub-expression of which to count the value
*/
public function Count(input:*) {
super(input);
}
/**
* @inheritDoc
*/
public override function reset():void
{
_count = 0;
}
/**
* @inheritDoc
*/
public override function eval(o:Object=null):*
{
return _count;
}
/**
* @inheritDoc
*/
public override function aggregate(value:Object):void
{
if (_expr.eval(value) != null) {
_count++;
}
}
} }