001    /*
002    // $Id: Quax.java 229 2009-05-08 19:11:29Z jhyde $
003    // This software is subject to the terms of the Eclipse Public License v1.0
004    // Agreement, available at the following URL:
005    // http://www.eclipse.org/legal/epl-v10.html.
006    // Copyright (C) 2008-2008 Julian Hyde
007    // All Rights Reserved.
008    // You must accept the terms of that agreement to use this software.
009    */
010    package org.olap4j.transform;
011    
012    import org.olap4j.CellSetAxis;
013    import org.olap4j.Position;
014    import org.olap4j.metadata.Member;
015    
016    /**
017     * Representation of member expressions on a query axis, derived from
018     * CellSetAxis objects.
019     *
020     * <p>Quaxes are used by MDX axis query transforms, to construct and use
021     * an internal tree-like representation of positions and members from the
022     * result CellSetAxis objects of a previous MDX query. This is needed
023     * for OLAP navigation operators like drill-down on a position.
024     *
025     * <p>Inspired from the JPivot Quax class.
026     *
027     * <p>NOTE: not exactly sure how to implement this, to be completed...
028     *
029     * @author etdub
030     * @version $Id: Quax.java 229 2009-05-08 19:11:29Z jhyde $
031     * @since Aug 7, 2008
032     */
033    public class Quax {
034        private final CellSetAxis cellSetAxis;
035    
036        private TreeNode<Member> memberTree;
037    
038        public Quax(CellSetAxis cellSetAxis) {
039            this.cellSetAxis = cellSetAxis;
040    
041            for (Position p : cellSetAxis.getPositions()) {
042                p.getMembers();
043            }
044        }
045    }
046    
047    // End Quax.java