/**
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;
}
}