assert dataSet != null;       QueryDefinition query = new QueryDefinition(); query.setDataSetName( dataSet.getName()); GroupDefinition group = new GroupDefinition(); group.setKeyColumn( boundColumnName ); query.addGroup( group ); query.setUsesDetails(false);  ModuleHandle moduleHandle = sessionContext.getModuleHandle(); if ( moduleHandle == null ) moduleHandle = dataSet.getModuleHandle();  QueryExecutionHelper execHelper = new QueryExecutionHelper( this.dataEngine, this.modelAdaptor, moduleHandle ); IQueryResults results = execHelper.executeQuery( query, inputParamBindings, null, columnBindings); IResultIterator resultIt = results.getResultIterator();   ArrayList values = new ArrayList(); while ( resultIt.next() ) { Object value = resultIt.getValue( boundColumnName ); values.add(value); resultIt.skipToEnd(1); } resultIt.close(); results.close();  return values;
return getColumnValueSet( dataSet, inputParamBindings, columnBindings, boundColumnName, null );
	public Collection getColumnValueSet( DataSetHandle dataSet,			Iterator inputParamBindings, Iterator columnBindings,			String boundColumnName ) throws BirtException	{		assert dataSet != null;		// TODO: this is the inefficient implementation		// Need to enhance the implementation to verify that the column is bound to a data set column		// Run a query with the provided binding information. Group by bound column so we can 		// retrieve distinct values using the grouping feature		QueryDefinition query = new QueryDefinition();		query.setDataSetName( dataSet.getName());		GroupDefinition group = new GroupDefinition();		group.setKeyColumn( boundColumnName );		query.addGroup( group );		query.setUsesDetails(false);				ModuleHandle moduleHandle = sessionContext.getModuleHandle();		if ( moduleHandle == null )			moduleHandle = dataSet.getModuleHandle();				QueryExecutionHelper execHelper = new QueryExecutionHelper( 				this.dataEngine, this.modelAdaptor, moduleHandle );		IQueryResults results = execHelper.executeQuery( 				query, inputParamBindings, null, columnBindings);		IResultIterator resultIt = results.getResultIterator();				// Iterate through result, getting one column value per group, skipping group detail rows		ArrayList values = new ArrayList();		while ( resultIt.next() )		{			Object value = resultIt.getValue( boundColumnName );			values.add(value);			resultIt.skipToEnd(1);		}		resultIt.close();		results.close();				return values;	}