jpel.language
Interface Expression

All Superinterfaces:
java.io.Serializable
All Known Subinterfaces:
ComparableExpression, ExpressionList, NamedExpression, StringableExpression
All Known Implementing Classes:
AbstractExpression, AbstractNamedExpression, ExpressionBoolean, ExpressionCharacter, ExpressionId, ExpressionListImpl, ExpressionListNumber, ExpressionNumber, ExpressionString

public interface Expression
extends java.io.Serializable

Esta é a unidade básica da linguagem funcional. Uma expressão, que possui: Um tipo associado, uma lista de variáveis livres, um mecanismo de substituição destas variáveis livres, uma forma de ser avaliada e uma relação de equivalência com as outras expressões.


Method Summary
 jpel.language.Expression createClone()
          Retorna um clone da expressão.
 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.
 java.lang.Object getData()
          Retorna o dado associado à expressão.
 java.lang.Object getData(java.lang.Class type)
          Retorna o dado associado à expressão.
 java.lang.Object getSource()
          Retorna a fonte que gerou a expressão.
 jpel.language.ExpressionType getType()
          Fornece o tipo da expressão.
 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 setData(java.lang.Object data)
          Ajusta o dado agregado à expressão.
 void setSource(java.lang.Object source)
          Ajusta a fonte de dados que gerou a expressão.
 void setType(jpel.language.ExpressionType newType)
          Ajusta o tipo da expressão.
 

Method Detail

getSource

public java.lang.Object getSource()
Retorna a fonte que gerou a expressão. Suponha que foi aplicada um parser sobre a expressão:
x == 0 = 0
otherwise = x * fat (x-1) A tradução interna desta função não representa bem esta expressão, para isso podemos ajustar esta fonte de dados para indicar que este texto originou determinada expressão, o que facilita a construção de editores gráficos para a linguagem.

Na definição do toString(), quando este campo é diferente de null, ele correponde a descrição do objeto, caso contrário usa-se a implementação do toString() específico.

Returns:
A fonte de dados que gerou a expressão.

setSource

public void setSource(java.lang.Object source)
Ajusta a fonte de dados que gerou a expressão.

Parameters:
source - A fonte dos dados.

getData

public java.lang.Object getData()
Retorna o dado associado à expressão. Este recurso é necessário para a geração de objetos Java que não fazem parte diretamente da linguagem, como uma conexão ao banco de dados, ou mesmo os "wrapers" dos tipos primitivos.

Returns:
O objeto embutido dentro de uma expressão.

getData

public java.lang.Object getData(java.lang.Class type)
Retorna o dado associado à expressão.

Parameters:
type - O tipo do objeto desejado.
Returns:
O objeto embutido dentro de uma expressão se ele for do tipo solicitado, null, caso contrário.

setData

public void setData(java.lang.Object data)
Ajusta o dado agregado à expressão.

Parameters:
data - O objeto que deve ser agregado a expressão.

getType

public jpel.language.ExpressionType getType()
Fornece o tipo da expressão.

Returns:
O tipo da expressão.

setType

public void setType(jpel.language.ExpressionType newType)
Ajusta o tipo da expressão.

Parameters:
newType - Novo tipo da expressão.

freeVariable

public void freeVariable(jpel.language.ExpressionList list)
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)
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
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:
IdNotFoundException - Quando um identificador necessário a execução da expressão não e encontrado no ambiente.
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)
Indica se uma expressão pode ser considerada equivalente à outra.

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.

createClone

public jpel.language.Expression createClone()
Retorna um clone da expressão.

Returns:
O clone da expressão.