//////////////////////////////////////////////////////////////////////////////// // // ADOBE SYSTEMS INCORPORATED // Copyright 2009 Adobe Systems Incorporated // All Rights Reserved. // // NOTICE: Adobe permits you to use, modify, and distribute this file // in accordance with the terms of the license agreement accompanying it. // //////////////////////////////////////////////////////////////////////////////// package mx.olap { /** * The IOLAPCustomAggregator interface defines the interface * implemented by custom aggregator classes. * An instance of a class that implements this interface can be passed to an OLAPMeasure * object to define the aggregation type of the measure. * *

You use the methods of this interface in two groups. The first group consists of the * computeBegin(), computeLoop(), and computeEnd() methods. * Use these methods to compute an aggregation of the values of a measure.

* *

The second group consists of the * computeObjectBegin(), computeObjectLoop(), * and computeObjectEnd() methods. * Use these methods to compute an aggregation of aggregated values.

* * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public interface IOLAPCustomAggregator { //-------------------------------------------------------------------------- // // Methods // //-------------------------------------------------------------------------- /** * Flex calls this method to start the computation of an aggregation value. * * @param dataField The name of the OLAPMeasure.dataField property * for the measure to be aggregated. * * @return An Object initialized for the aggregation. * Use this Object to hold any information necessary to perform the aggregation. * You pass this Object to subsequent calls to the computeLoop() * and computeEnd() methods. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function computeBegin(dataField:String):Object; /** * Flex calls this method when a new value needs to be added to the aggregation. * * @param data The Object returned by the call to the computeBegin() method, * or calculated by a previous call to the computeLoop() method. * Use this Object to hold information necessary to perform the aggregation. * This method modifies this Object; it does not return a value. * * @param dataField The name of the OLAPMeasure.dataField property * for the measure to be aggregated. * * @param value The object representing the rows data that is being analyzed. * * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function computeLoop(data:Object, dataField:String, value:Object):void; /** * Flex calls this method to end the computation of the aggregation value. * * * @param data The Object returned by the call to the computeLoop() method. * Use this Object to hold information necessary to perform the aggregation. * * @param dataField The name of the OLAPMeasure.dataField property * for the measure to be aggregated. * * @return The aggregated value. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function computeEnd(data:Object, dataField:String):Number; /** * Flex calls this method to start aggregation of aggregated values. * Calculating the average value of a group of averages is an example of * an aggregation of aggregated values. * * @param value The Object returned by the call to the computeEnd() method * for a previous aggregation. * Use this Object to hold the information necessary to perform the aggregation. * * @return An Object initialized for the aggregation. * Use this Object to hold any information necessary to perform the aggregation. * You pass this Object to subsequent calls to the computeObjectLoop() * and computeObjectEnd() methods. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function computeObjectBegin(value:Object):Object; /** * Flex calls this method when a new aggregated value needs to be added to the aggregation. * * @param value The Object returned by a call the computeObjectBegin() method, * or calculated by a previous call to the computeObjectLoop() method. * This method modifies this Object; it does not return a value. * * @param newValue The Object returned by the call to the computeEnd() method * for a previous aggregation. * * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function computeObjectLoop(value:Object, newValue:Object):void; /** * Flex calls this method to end the computation. * * @param value The Object returned by a call to the computeObjectLoop() method * that is used to store the aggregation results. * This method modifies this Object; it does not return a value. * * @param dataField The name of the OLAPMeasure.dataField property * for the measure to be aggregated. * * @return The aggregated value. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function computeObjectEnd(value:Object, dataField:String):Number; } }