jpel.language
Class ExpressionSwitch

java.lang.Object
  |
  +--jpel.language.AbstractExpression
        |
        +--jpel.language.ExpressionSwitch
All Implemented Interfaces:
Expression, java.io.Serializable

public class ExpressionSwitch
extends AbstractExpression

Rerpesenta o operador de múltipla escolha.

Syntax:
| case condition1 = expression1;
| case condition2 = expression2;
...
| case conditionN = expressionN;
| otherwise = defaultExpression;
Exemplo:
fat n =
| n == 1 = 0
| otherwise = n * fat (n - 1)

See Also:
Serialized Form

Constructor Summary
ExpressionSwitch(jpel.language.ExpressionList conditions, jpel.language.ExpressionList expressions, jpel.language.Expression otherwise)
           
 
Method Summary
 boolean equivalent(jpel.language.Expression expression)
          Indica se uma expressão pode ser considerada equivalente à outra.
 jpel.language.Expression eval(jpel.language.Environment environment)
          Executa uma expressão de acordo com o ambiente definido.
 void freeVariable(jpel.language.ExpressionList list)
          Guarda as variáveis livres da expressão em uma lista.
 jpel.language.ExpressionList getConditions()
           
 jpel.language.ExpressionList getExpressions()
           
 jpel.language.Expression getOtherwise()
           
 jpel.language.Expression rebuild(jpel.language.MapReplace map)
          Permite que sub-expressões sejam substibuídas por outras, de acordo com o mapeamento dado.
 void setConditions(jpel.language.ExpressionList newConditions)
           
 void setExpressions(jpel.language.ExpressionList newExpressions)
           
 void setOtherwise(jpel.language.Expression newOtherwise)
           
 java.lang.String toString()
           
 
Methods inherited from class jpel.language.AbstractExpression
createClone, getData, getData, getSource, getType, setData, setSource, setType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ExpressionSwitch

public ExpressionSwitch(jpel.language.ExpressionList conditions,
                        jpel.language.ExpressionList expressions,
                        jpel.language.Expression otherwise)
Method Detail

getConditions

public jpel.language.ExpressionList getConditions()

setConditions

public void setConditions(jpel.language.ExpressionList newConditions)

setExpressions

public void setExpressions(jpel.language.ExpressionList newExpressions)

getExpressions

public jpel.language.ExpressionList getExpressions()

setOtherwise

public void setOtherwise(jpel.language.Expression newOtherwise)

getOtherwise

public jpel.language.Expression getOtherwise()

freeVariable

public void freeVariable(jpel.language.ExpressionList list)
Description copied from interface: Expression
Guarda as variáveis livres da expressão em uma lista.

Parameters:
list - A lista onde as variáveis livres vão ser inseridas.

rebuild

public jpel.language.Expression rebuild(jpel.language.MapReplace map)
Description copied from interface: Expression
Permite que sub-expressões sejam substibuídas por outras, de acordo com o mapeamento dado.

Parameters:
map - O mapeamento que guarda as substituições.
Returns:
Uma nova expressão com as devidas substituições.

eval

public jpel.language.Expression eval(jpel.language.Environment environment)
                              throws ExecutionException
Description copied from interface: Expression
Executa uma expressão de acordo com o ambiente definido.

Parameters:
environment - Ambiente no qual a expressão deve ser executada.
Returns:
A expressão avaliada.
Throws:
ExecutionException - Quando os tipos necessários para a correta avaliação da expressão não são respeitados.

equivalent

public boolean equivalent(jpel.language.Expression expression)
Description copied from interface: Expression
Indica se uma expressão pode ser considerada equivalente à outra.

Specified by:
equivalent in interface Expression
Overrides:
equivalent in class AbstractExpression
Parameters:
expression - Expressão ao qual se deseja verificar a equivalência.
Returns:
true, caso as expressões possam ser consideradas equivalentes, false, caso contrário.

toString

public java.lang.String toString()
Overrides:
toString in class AbstractExpression