//////////////////////////////////////////////////////////////////////////////// // // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to You under the Apache License, Version 2.0 // (the "License"); you may not use this file except in compliance with // the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // //////////////////////////////////////////////////////////////////////////////// package mx.olap { import mx.resources.ResourceBundle; import mx.resources.ResourceManager; [ResourceBundle("olap")] /** * The OLAPQueryAxis interface represents an axis of an OLAP query. * * @mxml *
* The <mx:OLAPQueryAxis>
tag inherits all of the tag attributes
* of its superclass, and adds the following tag attributes:
*
* <mx:OLAPQueryAxis * Properties * /> * * @see mx.olap.OLAPQuery * @see mx.olap.IOLAPQueryAxis * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public class OLAPQueryAxis implements IOLAPQueryAxis { include "../core/Version.as"; //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- /** * Constructor * * @param ordinal The type of axis. * UseOLAPQuery.COLUMN AXIS
for a column axis, *OLAPQuery.ROW_AXIS
for a row axis, * andOLAPQuery.SLICER_AXIS
for a slicer axis. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function OLAPQueryAxis(ordinal:int) { axisOrdinal = ordinal; super(); } //-------------------------------------------------------------------------- // // Properties // //-------------------------------------------------------------------------- //---------------------------------- // axisOrdinal //---------------------------------- /** * The type of axis, as *OLAPQuery.COLUMN AXIS
for a column axis, *OLAPQuery.ROW_AXIS
for a row axis, * andOLAPQuery.SLICER_AXIS
for a slicer axis. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var axisOrdinal:int; //---------------------------------- // sets //---------------------------------- private var _sets:Array = []; /** * @inheritDoc * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function get sets():Array { return _sets; } //---------------------------------- // tuples //---------------------------------- private var _tuples:Array = []; /** * @inheritDoc * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function get tuples():Array { return _tuples; } //-------------------------------------------------------------------------- // // Methods // //-------------------------------------------------------------------------- /** * @inheritDoc * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function addMember(m:IOLAPMember):void { if (!m) { var message:String = ResourceManager.getInstance().getString( "olap", "nullMemberOnAxis", [axisOrdinal]); throw new QueryError(message); } var t:OLAPTuple = new OLAPTuple; _tuples.push(t); //TODO should we keep creating new sets? var s:OLAPSet = new OLAPSet; s.addTuple(t) _sets.push(s); t.addMember(m); } /** * @inheritDoc * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function addSet(s:IOLAPSet):void { _sets.push(s); for each (var t:OLAPTuple in OLAPSet(s).tuples) { _tuples.push(t); } } /** * @inheritDoc * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function addTuple(t:IOLAPTuple):void { _tuples.push(t); var s:OLAPSet = new OLAPSet; s.addTuple(t) _sets.push(s); } /** * Clears all the sets, tuples and members from this axis. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function clear():void { _tuples.splice(0); _sets.splice(0); } } }