/** SpagoBI, the Open Source Business Intelligence suite Copyright (C) 2012 Engineering Ingegneria Informatica S.p.A. - SpagoBI Competency Center This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. **/ package it.eng.spagobi.studio.oda.impl; import it.eng.spagobi.sdk.datasets.bo.SDKDataSetParameter; import it.eng.spagobi.server.services.api.bo.IDataSetParameter; import it.eng.spagobi.studio.utils.bo.DatasetParameter; import org.apache.axis.description.TypeDesc; import org.eclipse.datatools.connectivity.oda.IParameterMetaData; import org.eclipse.datatools.connectivity.oda.OdaException; /** * Implementation class of IParameterMetaData for an ODA runtime driver. * <br> * For demo purpose, the auto-generated method stubs have * hard-coded implementation that returns a pre-defined set * of meta-data and query results. * A custom ODA driver is expected to implement own data source specific * behavior in its place. */ public class ParameterMetaData implements IParameterMetaData { IDataSetParameter[] sdkParametersMeta; public ParameterMetaData(IDataSetParameter[] sdkParametersMeta) { this.sdkParametersMeta = sdkParametersMeta; } /* * @see org.eclipse.datatools.connectivity.oda.IParameterMetaData#getParameterCount() */ public int getParameterCount() throws OdaException { return sdkParametersMeta.length; } /* * @see org.eclipse.datatools.connectivity.oda.IParameterMetaData#getParameterMode(int) */ public int getParameterMode( int param ) throws OdaException { return IParameterMetaData.parameterModeIn; } /* (non-Javadoc) * @see org.eclipse.datatools.connectivity.oda.IParameterMetaData#getParameterName(int) */ public String getParameterName( int param ) throws OdaException { return sdkParametersMeta[param-1].getName(); } /* * @see org.eclipse.datatools.connectivity.oda.IParameterMetaData#getParameterType(int) */ public int getParameterType( int param ) throws OdaException { String type = sdkParametersMeta[param-1].getType(); //TypeDesc typeDesc = sdkParametersMeta[param-1].getTypeDesc(); return java.sql.Types.CHAR; // as defined in data set extension manifest } /* * @see org.eclipse.datatools.connectivity.oda.IParameterMetaData#getParameterTypeName(int) */ public String getParameterTypeName( int param ) throws OdaException { int nativeTypeCode = getParameterType( param ); return Driver.getNativeDataTypeName( nativeTypeCode ); } /* * @see org.eclipse.datatools.connectivity.oda.IParameterMetaData#getPrecision(int) */ public int getPrecision( int param ) throws OdaException { return -1; } /* * @see org.eclipse.datatools.connectivity.oda.IParameterMetaData#getScale(int) */ public int getScale( int param ) throws OdaException { return -1; } /* * @see org.eclipse.datatools.connectivity.oda.IParameterMetaData#isNullable(int) */ public int isNullable( int param ) throws OdaException { return IParameterMetaData.parameterNullableUnknown; } }