Class DynamicType.Builder.AbstractBase.Adapter.MethodMatchAdapter

    • Constructor Detail

      • MethodMatchAdapter

        protected MethodMatchAdapter​(LatentMatcher<? super MethodDescription> matcher)
        Creates a new method match adapter.
        Parameters:
        matcher - The method matcher of this adapter.
    • Method Detail

      • intercept

        public DynamicType.Builder.MethodDefinition.ReceiverTypeDefinition<U> intercept​(Implementation implementation)
        Implements the previously defined or matched method by the supplied implementation. A method interception is typically implemented in one of the following ways:
        1. If a method is declared by the instrumented type and the type builder creates a subclass or redefinition, any preexisting method is replaced by the given implementation. Any previously defined implementation is lost.
        2. If a method is declared by the instrumented type and the type builder creates a rebased version of the instrumented type, the original method is preserved within a private, synthetic method within the instrumented type. The original method therefore remains invokeable and is treated as the direct super method of the new method. When rebasing a type, it therefore becomes possible to invoke a non-virtual method's super method when a preexisting method body is replaced.
        3. If a virtual method is inherited from a super type, it is overridden. The overridden method is available for super method invocation.
        Parameters:
        implementation - The implementation for implementing the previously defined or matched method.
        Returns:
        A new builder where the previously defined or matched method is implemented by the supplied implementation.
      • withoutCode

        public DynamicType.Builder.MethodDefinition.ReceiverTypeDefinition<U> withoutCode()
        Defines the previously defined or matched method not to declare a method body. This implies the method to be abstract unless it was already declared to be native.
        Returns:
        A new builder where the previously defined or matched method is implemented to be abstract.