plp.orientadaAspectos1.memoria
Class ContextoExecucao

java.lang.Object
  extended by plp.orientadaAspectos1.memoria.ContextoExecucao
All Implemented Interfaces:
Ambiente, AmbienteExecucao

public class ContextoExecucao
extends java.lang.Object
implements AmbienteExecucao


Constructor Summary
ContextoExecucao()
          Construtor utilizado quando queremos ler do teclado.
ContextoExecucao(AmbienteExecucao ambiente)
          Construtor da classe.
ContextoExecucao(ListaValor entrada)
          Construtor.
 
Method Summary
 void addAdviceAfter(Id pointcutId, Advice advice)
          Adiciona um advice after na memoria.
 void addAdviceAround(Id pointcutId, Advice advice)
          Adiciona um advice Around na memoria.
 void addAdviceBefore(Id pointcutId, Advice advice)
          Adiciona um advice before na memoria.
 void addPointcut(Pointcut pointcut)
          Adiciona um pointcut na memoria.
 void changeValor(Id idArg, Valor valorId)
          Altera o valor associado a um identificador.
 StackDefinicaoJoinPoint createStackDefinicaoMetodo()
          Factory Method que cria uma instância da pilha de ChamadaMetodoJoinPoint
 AdviceGroup getAdvices(Interceptavel interceptavel)
          Retorna todos os advices relacionados ao comando especificado
 ContextoExecucao getContextoIdValor()
          Obtém um novo contexto de execução com a mesma entrada, saída e pilha de mapeamentos id/valor.
 DefClasse getDefClasse(Id idArg)
          Obtém a definição da classe cujo nome é idArg
 ListaValor getEntrada()
          Obtém a entrada.
 GerenciadorAspectos getGerAspectos()
          Obtém o gerenciador de aspectos.
 Objeto getObjeto(ValorRef valorRef)
          Obtém o objeto associado a um dado valor referencia.
 StackHashIdValor getPilha()
          Obtém a pilha de valores associados a identificadores
 StackHashIdDefClasse getPilhaDefClasse()
          Retorna a pilha com as definiçoes das classes.
 StackDefinicaoJoinPoint getPilhaJoinPoints()
          Obtém a pilha de definição de métodos chamados.
 StackHashValorObjeto getPilhaObjeto()
          Obtém a pilha com os objetos e seus valores.
 ValorRef getProxRef()
          Obtém a próxima referência de acordo com o contexto atual de execução.
 ValorRef getRef()
          Obtém o valor referencia atual.
 ListaValor getSaida()
          Obtém a saída.
 Valor getValor(Id idArg)
          Obtém o valor associado a um determinado identificador.
 void incrementa()
          Incrementa a pilha do ambiente, passando para o próximo estado.
 void mapDefClasse(Id idArg, DefClasse defClasse)
          Mapeia um identificador a um definição de classe.
 void mapObjeto(ValorRef valorRef, Objeto objeto)
          Mapeia um valor referência a um objeto.
 void mapValor(Id idArg, Valor valorId)
          Mapeia um identificador a um valor.
 DefinicaoJoinPoint popDefinicaoJoinPoint()
          Desempilha uma definição de um método chamado.
 void pushDefinicaoJoinPoint(DefinicaoJoinPoint djp)
          Adiciona uma definição de método a pilha de definições de métodos chamados.
 Valor read(Tipo tipoIdLido)
          Lê da entrada padrão e associa o conteúdo a um determinado identificador.
 void restaura()
          Restaura o estado do ambiente.
 java.lang.String toString()
          Retorna a representação textual do contexto de execução.
 AmbienteExecucao write(Valor v)
          Escreve um valor 'v' na saída.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ContextoExecucao

public ContextoExecucao()
Construtor utilizado quando queremos ler do teclado.


ContextoExecucao

public ContextoExecucao(AmbienteExecucao ambiente)
                 throws VariavelJaDeclaradaException
Construtor da classe.

Throws:
VariavelJaDeclaradaException

ContextoExecucao

public ContextoExecucao(ListaValor entrada)
Construtor.

Parameters:
entrada - Entrada para o contexto de execução.
Method Detail

getPilhaJoinPoints

public StackDefinicaoJoinPoint getPilhaJoinPoints()
Obtém a pilha de definição de métodos chamados.

Specified by:
getPilhaJoinPoints in interface AmbienteExecucao
Returns:
pilha de definições dos métodos chamados.

pushDefinicaoJoinPoint

public void pushDefinicaoJoinPoint(DefinicaoJoinPoint djp)
Adiciona uma definição de método a pilha de definições de métodos chamados.

Specified by:
pushDefinicaoJoinPoint in interface AmbienteExecucao

popDefinicaoJoinPoint

public DefinicaoJoinPoint popDefinicaoJoinPoint()
Desempilha uma definição de um método chamado.

Specified by:
popDefinicaoJoinPoint in interface AmbienteExecucao

createStackDefinicaoMetodo

public StackDefinicaoJoinPoint createStackDefinicaoMetodo()
Factory Method que cria uma instância da pilha de ChamadaMetodoJoinPoint


getGerAspectos

public GerenciadorAspectos getGerAspectos()
Obtém o gerenciador de aspectos.

Specified by:
getGerAspectos in interface AmbienteExecucao
Returns:
Gerenciador de aspectos.

getPilha

public StackHashIdValor getPilha()
Obtém a pilha de valores associados a identificadores

Specified by:
getPilha in interface AmbienteExecucao
Returns:
a pilha de valores associados a identificadores.

getPilhaDefClasse

public StackHashIdDefClasse getPilhaDefClasse()
Retorna a pilha com as definiçoes das classes.

Specified by:
getPilhaDefClasse in interface AmbienteExecucao
Returns:
a pilha com as definiçoes das classes.

getPilhaObjeto

public StackHashValorObjeto getPilhaObjeto()
Obtém a pilha com os objetos e seus valores.

Specified by:
getPilhaObjeto in interface AmbienteExecucao
Returns:
a pilha com os objetos e seus valores.

read

public Valor read(Tipo tipoIdLido)
           throws EntradaInvalidaException
Lê da entrada padrão e associa o conteúdo a um determinado identificador.

Specified by:
read in interface AmbienteExecucao
Parameters:
tipoIdLido - Tipo do identificador ao qual será associado o valor lido.
Returns:
o valor lido.
Throws:
EntradaInvalidaException - Quando a entrada fornecida não pode ser atribuída ao tipo do identificador.

getSaida

public ListaValor getSaida()
Obtém a saída.

Specified by:
getSaida in interface AmbienteExecucao
Returns:
a saída.

getEntrada

public ListaValor getEntrada()
Obtém a entrada.

Specified by:
getEntrada in interface AmbienteExecucao
Returns:
a entrada.

write

public AmbienteExecucao write(Valor v)
Escreve um valor 'v' na saída.

Specified by:
write in interface AmbienteExecucao
Parameters:
v - O valor a ser escrito.
Returns:
o ambiente de execução, que representa o estado atual.

incrementa

public void incrementa()
Incrementa a pilha do ambiente, passando para o próximo estado.

Specified by:
incrementa in interface Ambiente

restaura

public void restaura()
Restaura o estado do ambiente.

Specified by:
restaura in interface Ambiente

mapValor

public void mapValor(Id idArg,
                     Valor valorId)
              throws VariavelJaDeclaradaException
Mapeia um identificador a um valor.

Specified by:
mapValor in interface AmbienteExecucao
Parameters:
idArg - Identificador.
valorId - Valor que vai ser associado ao identificador.
Throws:
VariavelJaDeclaradaException - Quando a variável já foi declarada.

addPointcut

public void addPointcut(Pointcut pointcut)
Adiciona um pointcut na memoria.

Specified by:
addPointcut in interface AmbienteExecucao
Parameters:
aspecto - Aspecto a ser adicionado.

addAdviceBefore

public void addAdviceBefore(Id pointcutId,
                            Advice advice)
                     throws PointcutNaoDeclaradoException
Adiciona um advice before na memoria.

Specified by:
addAdviceBefore in interface AmbienteExecucao
Parameters:
id - O identificador do pointcut
aspecto - Aspecto a ser adicionado.
Throws:
PointcutNaoDeclaradoException

addAdviceAround

public void addAdviceAround(Id pointcutId,
                            Advice advice)
                     throws PointcutNaoDeclaradoException
Adiciona um advice Around na memoria.

Specified by:
addAdviceAround in interface AmbienteExecucao
Parameters:
id - O identificador do pointcut
aspecto - Aspecto a ser adicionado.
Throws:
PointcutNaoDeclaradoException

addAdviceAfter

public void addAdviceAfter(Id pointcutId,
                           Advice advice)
                    throws PointcutNaoDeclaradoException
Adiciona um advice after na memoria.

Specified by:
addAdviceAfter in interface AmbienteExecucao
Parameters:
id - O identificador do pointcut
aspecto - Aspecto a ser adicionado.
Throws:
PointcutNaoDeclaradoException

getAdvices

public AdviceGroup getAdvices(Interceptavel interceptavel)
                       throws ComandoNaoInterceptadoException,
                              ObjetoJaDeclaradoException,
                              ProcedimentoNaoDeclaradoException,
                              ProcedimentoJaDeclaradoException,
                              ClasseJaDeclaradaException,
                              ClasseNaoDeclaradaException,
                              EntradaInvalidaException,
                              PointcutNaoDeclaradoException,
                              UnsuporttedAdviceAroundForAccessAttributeException
Retorna todos os advices relacionados ao comando especificado

Specified by:
getAdvices in interface AmbienteExecucao
Parameters:
comando - O comando que devera ser interceptado
Returns:
todos os advices relacionados ao comando especificado
Throws:
PointcutNaoDeclaradoException
EntradaInvalidaException
ClasseNaoDeclaradaException
ClasseJaDeclaradaException
ProcedimentoJaDeclaradoException
ProcedimentoNaoDeclaradoException
ObjetoJaDeclaradoException
UnsuporttedAdviceAroundForAccessAttributeException
ComandoNaoInterceptadoException

mapDefClasse

public void mapDefClasse(Id idArg,
                         DefClasse defClasse)
                  throws ClasseJaDeclaradaException
Mapeia um identificador a um definição de classe.

Specified by:
mapDefClasse in interface AmbienteExecucao
Parameters:
idArg - o nome da classe
defClasse - Definição da Classe.
Throws:
ClasseJaDeclaradaException - quando a classe já foi declarada.

mapObjeto

public void mapObjeto(ValorRef valorRef,
                      Objeto objeto)
               throws ObjetoJaDeclaradoException
Mapeia um valor referência a um objeto.

Specified by:
mapObjeto in interface AmbienteExecucao
Parameters:
valorRef - Valor referência.
objeto - Objeto.
Throws:
ObjetoJaDeclaradoException - Quando esse objeto já foi declarado.

changeValor

public void changeValor(Id idArg,
                        Valor valorId)
                 throws VariavelNaoDeclaradaException
Altera o valor associado a um identificador.

Specified by:
changeValor in interface AmbienteExecucao
Parameters:
idArg - Identificador.
valorId - O valor a ser associado ao identificador.
Throws:
VariavelNaoDeclaradaException - Quando a variável não foi declarada.

getValor

public Valor getValor(Id idArg)
               throws VariavelNaoDeclaradaException
Obtém o valor associado a um determinado identificador.

Specified by:
getValor in interface AmbienteExecucao
Parameters:
idArg - Identificador
Returns:
o valor associado a um determinado identificador.
Throws:
VariavelNaoDeclaradaException - Quando a variável não foi declarada.

getDefClasse

public DefClasse getDefClasse(Id idArg)
                       throws ClasseNaoDeclaradaException
Obtém a definição da classe cujo nome é idArg

Specified by:
getDefClasse in interface AmbienteExecucao
Parameters:
idArg - Nome da classe.
Returns:
a definição da classe.
Throws:
ClasseNaoDeclaradaException - quando nao foi declarada nenhuma classe com esse nome.

getObjeto

public Objeto getObjeto(ValorRef valorRef)
                 throws ObjetoNaoDeclaradoException
Obtém o objeto associado a um dado valor referencia.

Specified by:
getObjeto in interface AmbienteExecucao
Parameters:
valorRef - Valor referência
Returns:
o objeto associado a um dado valor referencia.
Throws:
ObjetoNaoDeclaradoException - Quando o objeto não foi declarado.

getProxRef

public ValorRef getProxRef()
Obtém a próxima referência de acordo com o contexto atual de execução.

Specified by:
getProxRef in interface AmbienteExecucao
Returns:
a próxima referência de acordo com o contexto atual de execução.

getRef

public ValorRef getRef()
Obtém o valor referencia atual.

Specified by:
getRef in interface AmbienteExecucao
Returns:
o valor referencia atual.

toString

public java.lang.String toString()
Retorna a representação textual do contexto de execução.

Overrides:
toString in class java.lang.Object
Returns:
a representação textual do contexto de execução.

getContextoIdValor

public ContextoExecucao getContextoIdValor()
Obtém um novo contexto de execução com a mesma entrada, saída e pilha de mapeamentos id/valor.

Specified by:
getContextoIdValor in interface AmbienteExecucao
Returns:
um novo contexto de execução com a mesma entrada, saída e pilha de mapeamentos id/valor.