org.springframework.aop.aspectj

Class DeclareParentsAdvisor

  • java.lang.Object
    • org.springframework.aop.aspectj.DeclareParentsAdvisor
  • All Implemented Interfaces:
    Advisor, IntroductionAdvisor, IntroductionInfo


    public class DeclareParentsAdvisor
    extends java.lang.Object
    implements IntroductionAdvisor
    Introduction advisor delegating to the given object. Implements AspectJ annotation-style behavior for the DeclareParents annotation.
    Since:
    2.0
    Author:
    Rod Johnson, Ramnivas Laddad
    • Constructor Summary

      Constructors 
      Constructor and Description
      DeclareParentsAdvisor(java.lang.Class<?> interfaceType, java.lang.String typePattern, java.lang.Class<?> defaultImpl)
      Create a new advisor for this DeclareParents field.
      DeclareParentsAdvisor(java.lang.Class<?> interfaceType, java.lang.String typePattern, java.lang.Object delegateRef)
      Create a new advisor for this DeclareParents field.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      Advice getAdvice()
      Return the advice part of this aspect.
      ClassFilter getClassFilter()
      Return the filter determining which target classes this introduction should apply to.
      java.lang.Class<?>[] getInterfaces()
      Return the additional interfaces introduced by this Advisor or Advice.
      boolean isPerInstance()
      Return whether this advice is associated with a particular instance (for example, creating a mixin) or shared with all instances of the advised class obtained from the same Spring bean factory.
      void validateInterfaces()
      Can the advised interfaces be implemented by the introduction advice? Invoked before adding an IntroductionAdvisor.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DeclareParentsAdvisor

        public DeclareParentsAdvisor(java.lang.Class<?> interfaceType,
                                     java.lang.String typePattern,
                                     java.lang.Class<?> defaultImpl)
        Create a new advisor for this DeclareParents field.
        Parameters:
        interfaceType - static field defining the introduction
        typePattern - type pattern the introduction is restricted to
        defaultImpl - the default implementation class
      • DeclareParentsAdvisor

        public DeclareParentsAdvisor(java.lang.Class<?> interfaceType,
                                     java.lang.String typePattern,
                                     java.lang.Object delegateRef)
        Create a new advisor for this DeclareParents field.
        Parameters:
        interfaceType - static field defining the introduction
        typePattern - type pattern the introduction is restricted to
        delegateRef - the delegate implementation object
    • Method Detail

      • getClassFilter

        public ClassFilter getClassFilter()
        Description copied from interface: IntroductionAdvisor
        Return the filter determining which target classes this introduction should apply to.

        This represents the class part of a pointcut. Note that method matching doesn't make sense to introductions.

        Specified by:
        getClassFilter in interface IntroductionAdvisor
        Returns:
        the class filter
      • validateInterfaces

        public void validateInterfaces()
                                throws java.lang.IllegalArgumentException
        Description copied from interface: IntroductionAdvisor
        Can the advised interfaces be implemented by the introduction advice? Invoked before adding an IntroductionAdvisor.
        Specified by:
        validateInterfaces in interface IntroductionAdvisor
        Throws:
        java.lang.IllegalArgumentException - if the advised interfaces can't be implemented by the introduction advice
      • isPerInstance

        public boolean isPerInstance()
        Description copied from interface: Advisor
        Return whether this advice is associated with a particular instance (for example, creating a mixin) or shared with all instances of the advised class obtained from the same Spring bean factory.

        Note that this method is not currently used by the framework. Typical Advisor implementations always return true. Use singleton/prototype bean definitions or appropriate programmatic proxy creation to ensure that Advisors have the correct lifecycle model.

        Specified by:
        isPerInstance in interface Advisor
        Returns:
        whether this advice is associated with a particular target instance
      • getInterfaces

        public java.lang.Class<?>[] getInterfaces()
        Description copied from interface: IntroductionInfo
        Return the additional interfaces introduced by this Advisor or Advice.
        Specified by:
        getInterfaces in interface IntroductionInfo
        Returns:
        the introduced interfaces