scriptObj.setCurrentRowIndex( rowIndex );
	public boolean process( IResultObject row ) throws DataException	{		logger.entering( FilterByRow.class.getName( ), "process" );		Context cx = Context.enter();		try		{			boolean isAccepted = true;			Iterator filterIt = filters.iterator( );			scriptObj.setRowObject( row, false );			while ( filterIt.hasNext( ) )			{				IFilterDefinition filter = (IFilterDefinition) filterIt.next( );				IBaseExpression expr = filter.getExpression( );					Object result = ScriptEvalUtil.evalExpr( expr, cx, scope, "Filter", 0 );				if ( result == null )				{					Object info = null;					if ( expr instanceof IScriptExpression )						info = ( (IScriptExpression) expr ).getText( );					else						info = expr;					throw new DataException( ResourceConstants.INVALID_EXPRESSION_IN_FILTER,							info );				}								try				{					// filter in					if ( DataTypeUtil.toBoolean( result ).booleanValue( ) == false )					{						isAccepted = false;						break;					}				}				catch ( BirtException e )				{			    	DataException e1 = new DataException( ResourceConstants.DATATYPEUTIL_ERROR, e );					logger.logp( Level.FINE,							FilterByRow.class.getName( ),							"process",							"An error is thrown by DataTypeUtil.",							e1 );					throw e1;				}			}			return isAccepted;		}		finally		{			Context.exit();			logger.exiting( FilterByRow.class.getName( ), "process" );		}	}