return result;
	protected boolean hasNextRow( ) throws DataException	{		// make sure that the first row of group is used, instead of the last		// row		this.odiResult.last( lowestGroupLevel );				boolean result = odiResult.next( );		if ( result )		{			cachedStartingGroupLevel = odiResult.getStartingGroupLevel( );						if ( rowIDUtil == null )				rowIDUtil = new RowIDUtil( );						if ( this.rowIDUtil.getMode( this.odiResult ) == RowIDUtil.MODE_NORMAL )				cachedRowId = this.odiResult.getCurrentResultIndex( );			else			{				IResultObject ob = this.odiResult.getCurrentResult( );				if ( ob == null )					cachedRowId = -1;				else					cachedRowId = ( (Integer) ob.getFieldValue( rowIDUtil.getRowIdPos( ) ) ).intValue( );			}		}				return result;	}