operator.setHandle( new InvalidExpression( dataException ) );
if ( operator instanceof IScriptExpression ) operator.setHandle( new InvalidExpression( dataException ) );
	public void compileFilter( List filters,			IComputedColumnsState computedColumns )	{		IBaseExpression baseExpression = null;		String expression = "";		IScriptExpression operator = null;		FilterExpressionParser parser = new FilterExpressionParser( metaData,				computedColumns );		parser.setDataSetMode( this.isDataSetMode );		parser.setResultSetPopulator( this.rsPopulator );		for ( int i = 0; i < filters.size( ); i++ )		{			try			{				baseExpression = ( (FilterDefinition) filters.get( i ) ).getExpression( );				if ( baseExpression instanceof IConditionalExpression )				{					IConditionalExpression condition = (IConditionalExpression) baseExpression;										operator = condition.getExpression( );					if ( operator != null )					{						expression = operator.getText( );						operator.setHandle( parser.compileFilterExpression( expression ) );					}					operator = condition.getOperand1( );					if ( operator != null )					{						expression = operator.getText( );						operator.setHandle( parser.compileFilterExpression( expression ) );					}					operator = condition.getOperand2( );					if ( operator != null )					{						expression = operator.getText( );						operator.setHandle( parser.compileFilterExpression( expression ) );					}				}				else if ( baseExpression instanceof IScriptExpression )				{					operator = (IScriptExpression) baseExpression;					if ( baseExpression != null && operator != null )					{						expression = operator.getText( );						baseExpression.setHandle( parser.compileFilterExpression( expression ) );					}				}				else				{					// never get here					throw new DataException( ResourceConstants.INVALID_EXPRESSION_IN_FILTER );				}			}			catch ( DataException e )			{				DataException dataException = new DataException( ResourceConstants.INVALID_EXPRESSION_IN_FILTER,						e,						new Object[]{							expression						} );				assert operator != null;				operator.setHandle( new InvalidExpression( dataException ) );			}		}	}