resultIterator = new ResultIterator( context, this, queryResultID );
IBaseQueryDefinition queryDefn = this.getRDLoad( ) .loadQueryDefn( StreamManager.ROOT_STREAM, StreamManager.SELF_SCOPE );  if ( queryDefn.usesDetails( ) == true ) resultIterator = new ResultIterator( context, this, queryResultID ); else resultIterator = new ResultIterator2( context, this, queryResultID, queryDefn.getGroups( ).size( ) );
	public IResultIterator getResultIterator( ) throws BirtException	{		if ( resultIterator == null )		{			if ( subQueryName == null )			{				resultIterator = new ResultIterator( context,						this,						queryResultID );			}			else			{				resultIterator = new ResultIterator( context,						this,						queryResultID,						subQueryName,						currParentIndex );			}		}		return resultIterator;	}