com.hardcode.gdbms.engine.instruction
Interface Expression

All Known Implementing Classes:
AbstractExpression, AndExprAdapter, ColRefAdapter, CompareExprAdapter, ExistsClauseAdapter, Field, FunctionAdapter, IsClauseAdapter, LiteralAdapter, LValueAdapter, LValueTermAdapter, NotExprAdapter, OrExprAdapter, ProductExprAdapter, SumExprAdapter, TermAdapter, UnaryExprAdapter

public interface Expression

Interfaz a implementar sobre los nodos

Author:
Fernando González Cortés

Method Summary
 Value evaluate(long row)
          Evalúa la expresión para la fila row
 Value evaluateExpression(long row)
          Evalúa la expresión para la fila row y realiza el cacheado del resultado en caso de que la expression sea un literal
 java.lang.String getFieldName()
          Obtiene el nombre del campo en el que consiste la expresión.
 boolean isAggregated()
          Checks if this expression is an aggregate function.
 boolean isLiteral()
          Indica si los operandos de esta expresión son siempre los mismos o pueden cambiar.
 void simplify()
          Simplifica las expresiones del árbol de adaptadores
 

Method Detail

evaluateExpression

Value evaluateExpression(long row)
                         throws EvaluationException
Evalúa la expresión para la fila row y realiza el cacheado del resultado en caso de que la expression sea un literal

Parameters:
row - fila para la que se evalua la expresión
Returns:
Valor resultante de evaluar la expresión para la fila row
Throws:
EvaluationException - Si se produce algún error semántico

getFieldName

java.lang.String getFieldName()
Obtiene el nombre del campo en el que consiste la expresión. En el caso de que la expresión conste de alguna operación o no contenga ninguna referencia a un campo se devolverá null.

Returns:
Nombre del campo

isAggregated

boolean isAggregated()
Checks if this expression is an aggregate function. It is, implements the Function interface and its isAggregate method returns true

Returns:
boolean

simplify

void simplify()
Simplifica las expresiones del árbol de adaptadores


evaluate

Value evaluate(long row)
               throws EvaluationException
Evalúa la expresión para la fila row

Parameters:
row - fila para la que se evalua la expresión
Returns:
Valor resultante de evaluar la expresión para la fila row
Throws:
EvaluationException - Si se produce algún error semántico

isLiteral

boolean isLiteral()
Indica si los operandos de esta expresión son siempre los mismos o pueden cambiar. Puede cambiar cuando el operando es una funcion o una referencia a un campo y no debe cambiar en el resto de casos

Returns:
true si esta expresión va a devolver siempre el mismo valor


Copyright © 2005-2006 . All Rights Reserved.