ArrayList[] groupArray, int groupPosition, int groupIndex )
List[] groupArray, int groupPosition, int groupIndex )
	private void populateGroupBoundaryInfoSortings( Context cx,			ArrayList[] groupArray, int groupPosition, int groupIndex )			throws DataException	{		Object[] sortKeys = new Object[this.populator.getQuery( ).getGrouping( )[groupPosition].getSorts( )				.size( )];		boolean[] sortDirections = new boolean[sortKeys.length];		// populate the sortKeys		// this.smartCache.moveTo(((GroupBoundaryInfo)groupArray[groupPosition].get(groupIndex)).getStartIndex());		this.populator.getResultIterator( ).last( groupPosition + 1 );		for ( int l = 0; l < sortKeys.length; l++ )		{			sortKeys[l] = ScriptEvalUtil.evalExpr( ( (ISortDefinition) this.populator.getQuery( )					.getGrouping( )[groupPosition].getSorts( ).get( l ) ).getExpression( ),					cx,					this.groupProcessor.getExpressionProcessor( ).getScope( ),					"GroupFilter",					0 );			sortDirections[l] = ( (ISortDefinition) this.populator.getQuery( )					.getGrouping( )[groupPosition].getSorts( ).get( l ) ).getSortDirection( ) == ISortDefinition.SORT_ASC					? true : false;		}		( (GroupBoundaryInfo) groupArray[groupPosition].get( groupIndex ) ).setSortCondition( sortKeys,				sortDirections );		this.populator.getResultIterator( ).next( );	}