plp.orientadaAspectos1.expressao.aspecto
Class MethodCallPointcutDesignator

java.lang.Object
  extended by plp.orientadaAspectos1.expressao.aspecto.MethodCallPointcutDesignator
All Implemented Interfaces:
PointcutDesignator, PointcutExpressao

public class MethodCallPointcutDesignator
extends java.lang.Object
implements PointcutDesignator

Classe que identifica um pointcut designator capaz de interceptar chamadas de metodos.


Constructor Summary
MethodCallPointcutDesignator(Id classId, Id methodId)
          Construtor
MethodCallPointcutDesignator(Id classId, Id methodId, ListaTipoParametro tiposParametros)
          Construtor
 
Method Summary
 Id getClasse()
          Retorna o pattern que identifica o nome da classe
 Id getMetodo()
          Retorna o pattern que identifica o nome do método
 ListaTipoParametro getTiposParametros()
          Retorna o pattern que identifica os tipos dos parâmetros
 boolean intercept(Interceptavel interceptavel, AmbienteExecucao ambiente)
          Verifica se esta expressão intercepta este comando
 boolean matches(ChamadaMetodoJoinPoint chamadaMetodo, AmbienteExecucao ambiente)
          Verifica se o join point passado casa com a padrão definido neste pointcut
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MethodCallPointcutDesignator

public MethodCallPointcutDesignator(Id classId,
                                    Id methodId,
                                    ListaTipoParametro tiposParametros)
Construtor

Parameters:
classId - Nome da classe a ser inserceptada
methodId - Nome do metodo a ser inserceptado
tiposParametros - Lista de tipos dos parâmetros do metodo a ser interceptado

MethodCallPointcutDesignator

public MethodCallPointcutDesignator(Id classId,
                                    Id methodId)
Construtor

Parameters:
classId - Nome da classe a ser inserceptada
methodId - Nome do metodo a ser inserceptado
Method Detail

getClasse

public Id getClasse()
Retorna o pattern que identifica o nome da classe

Returns:
pattern que identifica o nome da classe

getMetodo

public Id getMetodo()
Retorna o pattern que identifica o nome do método

Returns:
pattern que identifica o nome do método

getTiposParametros

public ListaTipoParametro getTiposParametros()
Retorna o pattern que identifica os tipos dos parâmetros

Returns:
pattern que identifica os tipos dos parâmetros

intercept

public boolean intercept(Interceptavel interceptavel,
                         AmbienteExecucao ambiente)
                  throws ObjetoJaDeclaradoException,
                         ProcedimentoNaoDeclaradoException,
                         ProcedimentoJaDeclaradoException,
                         ClasseJaDeclaradaException,
                         ClasseNaoDeclaradaException,
                         EntradaInvalidaException,
                         PointcutNaoDeclaradoException,
                         UnsuporttedAdviceAroundForAccessAttributeException
Verifica se esta expressão intercepta este comando

Specified by:
intercept in interface PointcutExpressao
Parameters:
comando - O comando a ser interceptado
ambiente - O ambiente de execução
Returns:
true se o esta expressao identifica este comando false caso contrario.
Throws:
PointcutNaoDeclaradoException
EntradaInvalidaException
ClasseNaoDeclaradaException
ClasseJaDeclaradaException
ProcedimentoJaDeclaradoException
ProcedimentoNaoDeclaradoException
ObjetoJaDeclaradoException
UnsuporttedAdviceAroundForAccessAttributeException

matches

public boolean matches(ChamadaMetodoJoinPoint chamadaMetodo,
                       AmbienteExecucao ambiente)
                throws ClasseNaoDeclaradaException,
                       ProcedimentoNaoDeclaradoException
Verifica se o join point passado casa com a padrão definido neste pointcut

Parameters:
chamadaMetodo - Chamada de método
ambiente - Ambiente de execução necessário para obter os parâmetros formais da chamada de método passada
Returns:
true se o join point passado casa com a padrão definido neste pointcut
Throws:
ClasseNaoDeclaradaException
ProcedimentoNaoDeclaradoException