/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.content.index.queryexpression;
/**
* This interface defines the expression evaluator.
*/
public interface QueryEvaluator
{
/**
* Visit the expression.
*/
public Object evaluate( ArrayExpr expr );
/**
* Visit the expression.
*/
public Object evaluate( ValueExpr expr );
/**
* Visit the expression.
*/
public Object evaluate( FieldExpr expr );
/**
* Visit the expression.
*/
public Object evaluate( FunctionExpr expr );
/**
* Visit the expression.
*/
public Object evaluate( CompareExpr expr );
/**
* Visit the expression.
*/
public Object evaluate( LogicalExpr expr );
/**
* Visit the expression.
*/
public Object evaluate( NotExpr expr );
/**
* Visit the expression.
*/
public Object evaluate( OrderByExpr expr );
/**
* Visit the expression.
*/
public Object evaluate( OrderFieldExpr expr );
/**
* Visit the expression.
*/
public Object evaluate( QueryExpr expr );
}