return ScriptEvalUtil.evalConditionalExpr( resultExpr,ce.getOperator(), resultOp1,resultOp2);
return ScriptEvalUtil.evalConditionalExpr( resultExpr, ce.getOperator( ), ScriptEvalUtil.newExprInfo( ce.getOperand1( ).getText( ), resultOp1 ), ScriptEvalUtil.newExprInfo( ce.getOperand2( ).getText( ), resultOp2 ) );
	public Object getValue( IBaseExpression dataExpr )		throws DataException	{ 	    logger.logp( Level.FINE,				ResultIterator.class.getName( ),				"getValue",				"get of value IBaseExpression: " + LogUtil.toString( dataExpr) );	    checkStarted();	    	    // Must advance to first row before calling getValue	    if ( beforeFirstRow )	    {	    	DataException e = new DataException( ResourceConstants.NO_CURRENT_ROW );			logger.logp( Level.FINE,					ResultIterator.class.getName( ),					"getValue",					"Cursor has no current row.",					e );	        throw e;	    }	    Object handle = dataExpr.getHandle();	    if(handle instanceof CompiledExpression){	    	CompiledExpression expr = (CompiledExpression) handle;			Context cx = Context.enter( );			Object value = null;			try			{				value = evaluateCompiledExpression( expr, odiResult, cx, scope );			}			finally			{				Context.exit( );			}			try			{				return DataTypeUtil.convert( value, dataExpr.getDataType( ) );			}			catch ( BirtException e )			{				throw new DataException( ResourceConstants.INCONVERTIBLE_DATATYPE,						new Object[]{								value,								value.getClass( ),								DataType.getClass( dataExpr.getDataType( ) )						} );			}		    }	    else if(handle instanceof ConditionalExpression){	    	ConditionalExpression ce = (ConditionalExpression) handle;	    	Object resultExpr=getValue( ce.getExpression( ) );	    	Object resultOp1=ce.getOperand1( )!=null?getValue( ce.getOperand1( ) ):null;	    	Object resultOp2=ce.getOperand2( )!=null?getValue( ce.getOperand2( ) ):null;	    	return ScriptEvalUtil.evalConditionalExpr( resultExpr,ce.getOperator(), resultOp1,resultOp2);	    }	    else{	    	DataException e = new DataException( ResourceConstants.INVALID_EXPR_HANDLE );			logger.logp( Level.FINE,					ResultIterator.class.getName( ),					"getValue",					"Invalid expression handle.",					e );			throw e;	    }	}