001 /*
002 // $Id: OlapParameterMetaData.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.type.Type;
013
014 import java.sql.ParameterMetaData;
015
016 /**
017 * Extension to {@link ParameterMetaData} for parameters of OLAP statements.
018 *
019 * <p>Chief differences:
020 * <ul>
021 * <li>An OLAP statement parameter has a name.
022 * <li>An OLAP statement parameter may be a member. If this is the case,
023 * the {@link #getParameterType(int)} method returns
024 * {@link java.sql.Types#OTHER}.
025 * <li>An additional method {@link #getParameterOlapType(int)} provides extra
026 * type information; in particular, the hierarchy that a member parameter
027 * belongs to.
028 * </ul>
029 *
030 * <p>Parameters to an OLAP statement must have default values, and therefore
031 * it is not necessary to set every parameter.
032 *
033 * @author jhyde
034 * @version $Id: OlapParameterMetaData.java 229 2009-05-08 19:11:29Z jhyde $
035 * @since Oct 12, 2006
036 */
037 public interface OlapParameterMetaData extends ParameterMetaData {
038 /**
039 * Returns the name of this parameter.
040 *
041 * @param param the first parameter is 1, the second is 2, ...
042 * @return parameter name
043 * @exception OlapException if a database access error occurs
044 */
045 String getParameterName(int param) throws OlapException;
046
047 /**
048 * Retrieves the designated parameter's OLAP type.
049 *
050 * @param param the first parameter is 1, the second is 2, ...
051 * @return OLAP type
052 * @exception OlapException if a database access error occurs
053 */
054 Type getParameterOlapType(int param) throws OlapException;
055 }
056
057 // End OlapParameterMetaData.java