org.aopalliance.intercept

## Interface Joinpoint

- All Known Subinterfaces:
    ConstructorInvocation, Invocation, MethodInvocation, ProxyMethodInvocation
  All Known Implementing Classes:
    ReflectiveMethodInvocation

      public interface Joinpoint

  This interface represents a generic runtime joinpoint (in the AOP terminology).

  A runtime joinpoint is an event that occurs on a static joinpoint (i.e. a location in a program). For instance, an invocation is the runtime joinpoint on a method (static joinpoint). The static part of a given joinpoint can be generically retrieved using the `getStaticPart()` method.

  In the context of an interception framework, a runtime joinpoint is then the reification of an access to an accessible object (a method, a constructor, a field), i.e. the static part of the joinpoint. It is passed to the interceptors that are installed on the static joinpoint.

  Author:
    Rod Johnson
  See Also:
    `Interceptor`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `AccessibleObject` | `getStaticPart()` Return the static part of this joinpoint.
    `Object` | `getThis()` Return the object that holds the current joinpoint's static part.
    `Object` | `proceed()` Proceed to the next interceptor in the chain.

- - ### Method Detail

    - #### proceed

          @Nullable
          Object proceed()
                            throws Throwable

      Proceed to the next interceptor in the chain.

      The implementation and the semantics of this method depends on the actual joinpoint type (see the children interfaces).

      Returns:
        see the children interfaces' proceed definition
      Throws:
        `Throwable` - if the joinpoint throws an exception

    - #### getThis

          @Nullable
          Object getThis()

      Return the object that holds the current joinpoint's static part.

      For instance, the target object for an invocation.

      Returns:
        the object (can be null if the accessible object is static)

    - #### getStaticPart

          @Nonnull
          AccessibleObject getStaticPart()

      Return the static part of this joinpoint.

      The static part is an accessible object on which a chain of interceptors is installed.