Interface Implementation.Target

All Known Implementing Classes:
Implementation.Target.AbstractBase, RebaseImplementationTarget, SubclassImplementationTarget
Enclosing interface:
Implementation

public static interface Implementation.Target
The target of an implementation. Implementation targets must be immutable and can be queried without altering the implementation result. An implementation target provides information on the type that is to be created where it is the implementation's responsibility to cache expensive computations, especially such computations that require reflective look-up.
  • Method Details

    • getInstrumentedType

      TypeDescription getInstrumentedType()
      Returns a description of the instrumented type.
      Returns:
      A description of the instrumented type.
    • getOriginType

      TypeDefinition getOriginType()
      Identifies the origin type of an implementation. The origin type describes the type that is subject to any form of enhancement. If a subclass of a given type is generated, the base type of this subclass describes the origin type. If a given type is redefined or rebased, the origin type is described by the instrumented type itself.
      Returns:
      The origin type of this implementation.
    • invokeSuper

      Creates a special method invocation for invoking the super method of the given method.
      Parameters:
      token - A token of the method that is to be invoked as a super method.
      Returns:
      The corresponding special method invocation which might be illegal if the requested invocation is not legal.
    • invokeDefault

      Creates a special method invocation for invoking a default method with the given token. The default method call must not be ambiguous or an illegal special method invocation is returned.
      Parameters:
      token - A token of the method that is to be invoked as a default method.
      Returns:
      The corresponding default method invocation which might be illegal if the requested invocation is not legal or ambiguous.
    • invokeDefault

      Creates a special method invocation for invoking a default method.
      Parameters:
      token - A token that uniquely describes the method to invoke.
      targetType - The interface on which the default method is to be invoked.
      Returns:
      The corresponding special method invocation which might be illegal if the requested invocation is not legal.
    • invokeDominant

      Invokes a dominant method, i.e. if the method token can be invoked as a super method invocation, this invocation is considered dominant. Alternatively, a method invocation is attempted on an interface type as a default method invocation only if this invocation is not ambiguous for several interfaces.
      Parameters:
      token - The method token representing the method to be invoked.
      Returns:
      A special method invocation for a method representing the method token.