return null;
return Collections.EMPTY_LIST;
	public Collection getSelectionListForCascadingGroup(			String parameterGroupName, Object[] groupKeyValues )	{		CascadingParameterGroupHandle parameterGroup = getCascadingParameterGroup( parameterGroupName );		if ( parameterGroup == null )			return null;		IResultIterator iter = ( IResultIterator ) dataCache				.get( parameterGroup.getName( ) );		if ( iter == null )			return null;		SlotHandle slotHandle = parameterGroup.getParameters( );		assert ( groupKeyValues.length < slotHandle.getCount( ) );		int skipLevel = groupKeyValues.length + 1;		ScalarParameterHandle requestedParam = ( ScalarParameterHandle ) slotHandle				.get( groupKeyValues.length ); // The parameters in												// parameterGroup must be scalar												// parameters.		int listLimit = requestedParam.getListlimit( );		boolean fixedOrder = requestedParam.isFixedOrder( );		// String valueType = requestedParam.getDataType();		// We need to cache the expression object in function evaluateQuery and		// use the cached object here instead of creating a new one because		// according to DtE API for IResultIterator.getString,		// the expression object must be the same object created at the time of		// preparation.		// Actually, the prepare process will modify the expression object ,		// only after which		// the expression object can be used to get the real value from the		// result set.		// If we create a new expression object here, it won't work.		ScriptExpression labelExpr = ( ScriptExpression ) labelMap				.get( parameterGroup.getName( ) + "_"						+ requestedParam.getName( ) );		ScriptExpression valueExpr = ( ScriptExpression ) valueMap				.get( parameterGroup.getName( ) + "_"						+ requestedParam.getName( ) );		ArrayList choices = new ArrayList( );		try		{			if ( skipLevel > 1 )				iter.findGroup( groupKeyValues );			int startGroupLevel = skipLevel - 1;			int count = 0;			while ( iter.next( ) )			{				// startGroupLevel = iter.getStartingGroupLevel();				String label = ( labelExpr != null ? iter.getString( labelExpr )						: null );				Object value = iter.getValue( valueExpr );				// value = convertToType( value, valueType );				choices.add( new SelectionChoice( label, value ) );				count++;				if ( ( listLimit != 0 ) && ( count >= listLimit ) )					break;				iter.skipToEnd( skipLevel );				int endGroupLevel = iter.getEndingGroupLevel( );				if ( endGroupLevel <= startGroupLevel )				{					break;				}			}		} catch ( BirtException e )		{			e.printStackTrace( );		}		if ( !fixedOrder )			Collections.sort( choices, new SelectionChoiceComparator( true ) );		return choices;	}