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( ); } }
	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( );				return result;	}