com.hardcode.gdbms.engine.instruction
Class SumExprAdapter

java.lang.Object
  extended by com.hardcode.gdbms.engine.instruction.Adapter
      extended by com.hardcode.gdbms.engine.instruction.AbstractExpression
          extended by com.hardcode.gdbms.engine.instruction.SumExprAdapter
All Implemented Interfaces:
Expression

public class SumExprAdapter
extends AbstractExpression
implements Expression

Adaptador sobre los nodos de expresión de suma del arbol sintáctico de entrada

Author:
Fernando González Cortés

Constructor Summary
SumExprAdapter()
           
 
Method Summary
 Value evaluate(long row)
          Evalua expresión invocando el método adecuado en función del tipo de expresion (suma, producto, ...) de los objetos Value de la expresion, de las subexpresiones y de los objetos Field
 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
 
Methods inherited from class com.hardcode.gdbms.engine.instruction.AbstractExpression
evaluateExpression, getLiteralCondition
 
Methods inherited from class com.hardcode.gdbms.engine.instruction.Adapter
getChilds, getEntity, getInstructionContext, getParent, replaceChild, setChilds, setEntity, setInstructionContext, setParent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.hardcode.gdbms.engine.instruction.Expression
evaluateExpression
 

Constructor Detail

SumExprAdapter

public SumExprAdapter()
Method Detail

evaluate

public Value evaluate(long row)
               throws EvaluationException
Evalua expresión invocando el método adecuado en función del tipo de expresion (suma, producto, ...) de los objetos Value de la expresion, de las subexpresiones y de los objetos Field

Specified by:
evaluate in interface Expression
Parameters:
row - Fila en la que se evalúa la expresión, en este caso no es necesario, pero las subexpresiones sobre las que se opera pueden ser campos de una tabla, en cuyo caso si es necesario
Returns:
Objeto Value resultado de la operación propia de la expresión representada por el nodo sobre el cual éste objeto es adaptador
Throws:
EvaluationException - Si se produce un error semántico

getFieldName

public java.lang.String getFieldName()
Description copied from interface: Expression
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.

Specified by:
getFieldName in interface Expression
Returns:
Nombre del campo
See Also:
Expression.getFieldName()

isLiteral

public boolean isLiteral()
Description copied from interface: Expression
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

Specified by:
isLiteral in interface Expression
Returns:
true si esta expresión va a devolver siempre el mismo valor
See Also:
Expression.isLiteral()

simplify

public void simplify()
Description copied from interface: Expression
Simplifica las expresiones del árbol de adaptadores

Specified by:
simplify in interface Expression
See Also:
Expression.simplify()

isAggregated

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

Specified by:
isAggregated in interface Expression
Overrides:
isAggregated in class AbstractExpression
Returns:
boolean
See Also:
Expression.isAggregated()


Copyright © 2005-2006 . All Rights Reserved.