org.springframework.aop.support

## Class IntroductionInfoSupport

- java.lang.Object
- - org.springframework.aop.support.IntroductionInfoSupport

- All Implemented Interfaces:
    Serializable, IntroductionInfo
  Direct Known Subclasses:
    DelegatePerTargetObjectIntroductionInterceptor, DelegatingIntroductionInterceptor

      public class IntroductionInfoSupport
      extends Object
      implements IntroductionInfo, Serializable

  Support for implementations of `IntroductionInfo`.

  Allows subclasses to conveniently add all interfaces from a given object, and to suppress interfaces that should not be added. Also allows for querying all introduced interfaces.

  Author:
    Rod Johnson, Juergen Hoeller
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Set<Class>` | `publishedInterfaces`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IntroductionInfoSupport()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Class[]` | `getInterfaces()` Return the additional interfaces introduced by this Advisor or Advice.
    `protected void` | `implementInterfacesOnObject(Object delegate)` Publish all interfaces that the given delegate implements at the proxy level.
    `boolean` | `implementsInterface(Class ifc)` Check whether the specified interfaces is a published introduction interface.
    `protected boolean` | `isMethodOnIntroducedInterface(MethodInvocation mi)` Is this method on an introduced interface?
    `void` | `suppressInterface(Class intf)` Suppress the specified interface, which may have been autodetected due to the delegate implementing it.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### publishedInterfaces

          protected final Set<Class> publishedInterfaces

  - ### Constructor Detail

    - #### IntroductionInfoSupport

          public IntroductionInfoSupport()

  - ### Method Detail

    - #### suppressInterface

          public void suppressInterface(Class intf)

      Suppress the specified interface, which may have been autodetected due to the delegate implementing it. Call this method to exclude internal interfaces from being visible at the proxy level.

      Does nothing if the interface is not implemented by the delegate.

      Parameters:
        `intf` - the interface to suppress

    - #### getInterfaces

          public 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

    - #### implementsInterface

          public boolean implementsInterface(Class ifc)

      Check whether the specified interfaces is a published introduction interface.
      Parameters:
        `ifc` - the interface to check
      Returns:
        whether the interface is part of this introduction

    - #### implementInterfacesOnObject

          protected void implementInterfacesOnObject(Object delegate)

      Publish all interfaces that the given delegate implements at the proxy level.
      Parameters:
        `delegate` - the delegate object

    - #### isMethodOnIntroducedInterface

          protected final boolean isMethodOnIntroducedInterface(MethodInvocation mi)

      Is this method on an introduced interface?
      Parameters:
        `mi` - the method invocation
      Returns:
        whether the invoked method is on an introduced interface