001 /* 002 // $Id: //open/mondrian/src/main/mondrian/olap/AxisOrdinal.java#9 $ 003 // This software is subject to the terms of the Common Public License 004 // Agreement, available at the following URL: 005 // http://www.opensource.org/licenses/cpl.html. 006 // Copyright (C) 2003-2007 Julian Hyde 007 // All Rights Reserved. 008 // You must accept the terms of that agreement to use this software. 009 // 010 // jhyde, Feb 21, 2003 011 */ 012 package mondrian.olap; 013 014 /** 015 * <code>AxisOrdinal</code> describes the allowable values for an axis code. 016 * 017 * @author jhyde 018 * @since Feb 21, 2003 019 * @version $Id: //open/mondrian/src/main/mondrian/olap/AxisOrdinal.java#9 $ 020 */ 021 public enum AxisOrdinal { 022 023 /** No axis.*/ 024 NONE, 025 026 /** Slicer axis. */ 027 SLICER, 028 029 /** Columns axis (also known as X axis), logical ordinal = 0. */ 030 COLUMNS, 031 032 /** Rows axis (also known as Y axis), logical ordinal = 1. */ 033 ROWS, 034 035 /** Pages axis, logical ordinal = 2. */ 036 PAGES, 037 038 /** Chapters axis, logical ordinal = 3. */ 039 CHAPTERS, 040 041 /** Sections axis, logical ordinal = 4. */ 042 SECTIONS; 043 044 public static AxisOrdinal forLogicalOrdinal(int ordinal) { 045 return values()[ordinal + 2]; 046 } 047 048 /** 049 * Returns the ordinal of this axis with {@link #COLUMNS} = 0, 050 * {@link #ROWS} = 1, etc. 051 */ 052 public int logicalOrdinal() { 053 return ordinal() - 2; 054 } 055 056 public static final int MaxLogicalOrdinal = SECTIONS.logicalOrdinal() + 1; 057 } 058 059 // End AxisOrdinal.java