com.hardcode.gdbms.engine.instruction
Class NotExprAdapter

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.NotExprAdapter
All Implemented Interfaces:
Expression

public class NotExprAdapter
extends AbstractExpression
implements Expression

Adapter de las Expresiones Not del arbol sintáctico

Author:
Fernando González Cortés

Constructor Summary
NotExprAdapter()
           
 
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 isLiteral()
          Indica si los operandos de esta expresión son siempre los mismos o pueden cambiar.
 void setEntity(Node o)
          Establece la entidad del arbol sintáctico de la que es adaptador este objeto
 void simplify()
          Simplifica las expresiones del árbol de adaptadores
 
Methods inherited from class com.hardcode.gdbms.engine.instruction.AbstractExpression
evaluateExpression, getLiteralCondition, isAggregated
 
Methods inherited from class com.hardcode.gdbms.engine.instruction.Adapter
getChilds, getEntity, getInstructionContext, getParent, replaceChild, setChilds, 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, isAggregated
 

Constructor Detail

NotExprAdapter

public NotExprAdapter()
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:
SemanticException - Si se produce un error semántico
DriverException - Si se produce un error de I/O
IncompatibleTypesException - Si la expresión es una negación y la expresión que se niega no es booleana
EvaluationException - Si se produce algún 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()

setEntity

public void setEntity(Node o)
Description copied from class: Adapter
Establece la entidad del arbol sintáctico de la que es adaptador este objeto

Overrides:
setEntity in class Adapter
Parameters:
o - Nodo de arbol sintáctico
See Also:
Adapter.setEntity(com.hardcode.gdbms.parser.Node)


Copyright © 2005-2006 . All Rights Reserved.