plp.orientadaAspectos1.comando
Class Atribuicao

java.lang.Object
  extended by plp.orientadaAspectos1.interceptavel.Interceptavel
      extended by plp.orientadaAspectos1.interceptavel.InterceptavelComAround
          extended by plp.orientadaAspectos1.comando.Atribuicao
All Implemented Interfaces:
Comando

public class Atribuicao
extends InterceptavelComAround

Classe que representa um comando de atribuição.


Constructor Summary
Atribuicao(LeftExpression av, Expressao expressao)
          Construtor.
 
Method Summary
 boolean checaTipo(AmbienteCompilacao ambiente)
          Um comando de atribuição está bem tipado, se o tipo do identificador é o mesmo da expressão.
 AmbienteExecucao executar(AmbienteExecucao ambiente)
          Executa este comando.
 LeftExpression getLefExpression()
          Retorna o lado esquerdo da atribuição
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Atribuicao

public Atribuicao(LeftExpression av,
                  Expressao expressao)
Construtor.

Parameters:
av - Lado esquerdo
expressao - Expressão cujo valor será atribuído ao lado esquerdo.
Method Detail

getLefExpression

public LeftExpression getLefExpression()
Retorna o lado esquerdo da atribuição

Returns:
lado esquerdo da atribuição

executar

public AmbienteExecucao executar(AmbienteExecucao ambiente)
                          throws VariavelJaDeclaradaException,
                                 VariavelNaoDeclaradaException,
                                 ObjetoJaDeclaradoException,
                                 ObjetoNaoDeclaradoException,
                                 ProcedimentoNaoDeclaradoException,
                                 ProcedimentoJaDeclaradoException,
                                 ClasseJaDeclaradaException,
                                 ClasseNaoDeclaradaException,
                                 EntradaInvalidaException,
                                 PointcutNaoDeclaradoException,
                                 UnsuporttedAdviceAroundForAccessAttributeException
Executa este comando.

Specified by:
executar in interface Comando
Overrides:
executar in class InterceptavelComAround
Parameters:
ambiente - o ambiente que contem o mapeamento entre identificadores e valores.
Returns:
o ambiente modificado pela execução do comando.
Throws:
UnsuporttedAdviceAroundForAccessAttributeException
VariavelJaDeclaradaException
VariavelNaoDeclaradaException
ObjetoJaDeclaradoException
ObjetoNaoDeclaradoException
ProcedimentoNaoDeclaradoException
ProcedimentoJaDeclaradoException
ClasseJaDeclaradaException
ClasseNaoDeclaradaException
EntradaInvalidaException
PointcutNaoDeclaradoException

checaTipo

public boolean checaTipo(AmbienteCompilacao ambiente)
                  throws VariavelNaoDeclaradaException,
                         ClasseNaoDeclaradaException
Um comando de atribuição está bem tipado, se o tipo do identificador é o mesmo da expressão. O tipo de um identificador é determinado pelo tipo da expressão que o inicializou (na declaração).

Parameters:
ambiente - o ambiente que contem o mapeamento entre identificadores e valores.
Returns:
true se os tipos da atribuição são válidos; false caso contrario.
Throws:
VariavelNaoDeclaradaException
ClasseNaoDeclaradaException