001 /* 002 // $Id: CellSetMetaData.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) 2006-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; 011 012 import org.olap4j.metadata.*; 013 014 import java.sql.ResultSetMetaData; 015 016 /** 017 * An object that can be used to get information about the axes 018 * and cells in a <code>CellSet</code> object. 019 * 020 * <p>The following code fragment creates the <code>CellSet</code> object cs, 021 * creates the <code>CellSetMetaData</code> object csmd, and uses csmd 022 * to find out how many axes cs has and the name of the cube. 023 * 024 * <blockquote> 025 * <pre> 026 * CellSet cs = stmt.executeOlapQuery( 027 * "SELECT {[Measures].[Unit Sales] ON COLUMNS,\n" + 028 * " Crossjoin([Time].Children, [Store].Children) ON ROWS\n" + 029 * "FROM [Sales]"); 030 * CellSetMetaData csmd = cs.getMetaData(); 031 * int numberOfAxes = csmd.getAxesMetaData().size(); 032 * String cubeName = csmd.getCube().getName(); 033 * </pre> 034 * </blockquote> 035 * 036 * @author jhyde 037 * @version $Id: CellSetMetaData.java 229 2009-05-08 19:11:29Z jhyde $ 038 * @since Oct 23, 2006 039 */ 040 public interface CellSetMetaData extends ResultSetMetaData, OlapWrapper { 041 /** 042 * Returns a list of Property objects which each Cell may have. 043 * 044 * @return list of cell properties 045 */ 046 NamedList<Property> getCellProperties(); 047 048 /** 049 * Returns the Cube which was referenced in this statement. 050 * 051 * @return cube referenced in this statement 052 */ 053 Cube getCube(); 054 055 /** 056 * Returns a list of CellSetAxisMetaData describing each result axis. 057 * 058 * @return list of metadata describing each result axis 059 */ 060 NamedList<CellSetAxisMetaData> getAxesMetaData(); 061 062 /** 063 * Returns a CellSetAxisMetaData describing the filter axis. Never returns 064 * null; if the MDX statement contains no WHERE clause, the description of 065 * the filter contains no hierarchies. 066 * 067 * @return metadata describing filter axis 068 */ 069 CellSetAxisMetaData getFilterAxisMetaData(); 070 } 071 072 // End CellSetMetaData.java