Class DynamicType.Builder.AbstractBase<S>

    • Constructor Detail

      • AbstractBase

        public AbstractBase()
    • Method Detail

      • annotateType

        public DynamicType.Builder<S> annotateType​(java.lang.annotation.Annotation... annotation)
        Description copied from interface: DynamicType.Builder
        Annotates the instrumented type with the supplied annotations.
        Specified by:
        annotateType in interface DynamicType.Builder<S>
        Parameters:
        annotation - The annotations to add to the instrumented type.
        Returns:
        A new builder that is equal to this builder but with the annotations added to the instrumented type.
      • annotateType

        public DynamicType.Builder<S> annotateType​(java.util.List<? extends java.lang.annotation.Annotation> annotations)
        Description copied from interface: DynamicType.Builder
        Annotates the instrumented type with the supplied annotations.
        Specified by:
        annotateType in interface DynamicType.Builder<S>
        Parameters:
        annotations - The annotations to add to the instrumented type.
        Returns:
        A new builder that is equal to this builder but with the annotations added to the instrumented type.
      • annotateType

        public DynamicType.Builder<S> annotateType​(AnnotationDescription... annotation)
        Description copied from interface: DynamicType.Builder
        Annotates the instrumented type with the supplied annotations.
        Specified by:
        annotateType in interface DynamicType.Builder<S>
        Parameters:
        annotation - The annotations to add to the instrumented type.
        Returns:
        A new builder that is equal to this builder but with the annotations added to the instrumented type.
      • modifiers

        public DynamicType.Builder<S> modifiers​(ModifierContributor.ForType... modifierContributor)
        Description copied from interface: DynamicType.Builder
        Defines the supplied modifiers as the modifiers of the instrumented type.
        Specified by:
        modifiers in interface DynamicType.Builder<S>
        Parameters:
        modifierContributor - The modifiers of the instrumented type.
        Returns:
        A new builder that is equal to this builder but with the supplied modifiers applied onto the instrumented type.
      • modifiers

        public DynamicType.Builder<S> modifiers​(java.util.Collection<? extends ModifierContributor.ForType> modifierContributors)
        Description copied from interface: DynamicType.Builder
        Defines the supplied modifiers as the modifiers of the instrumented type.
        Specified by:
        modifiers in interface DynamicType.Builder<S>
        Parameters:
        modifierContributors - The modifiers of the instrumented type.
        Returns:
        A new builder that is equal to this builder but with the supplied modifiers applied onto the instrumented type.
      • merge

        public DynamicType.Builder<S> merge​(ModifierContributor.ForType... modifierContributor)
        Description copied from interface: DynamicType.Builder
        Merges the supplied modifier contributors with the modifiers of the instrumented type and defines them as the instrumented type's new modifiers.
        Specified by:
        merge in interface DynamicType.Builder<S>
        Parameters:
        modifierContributor - The modifiers of the instrumented type.
        Returns:
        A new builder that is equal to this builder but with the supplied modifiers merged into the instrumented type's modifiers.
      • implement

        public DynamicType.Builder.MethodDefinition.ImplementationDefinition.Optional<S> implement​(java.lang.reflect.Type... interfaceType)
        Description copied from interface: DynamicType.Builder

        Implements the supplied interfaces for the instrumented type. Optionally, it is possible to define the methods that are defined by the interfaces or the interfaces' super interfaces. This excludes methods that are explicitly ignored.

        Note: This methods implements the supplied types as is, i.e. any Class values are implemented as raw types if they declare type variables or an owner type.

        Specified by:
        implement in interface DynamicType.Builder<S>
        Parameters:
        interfaceType - The interface types to implement.
        Returns:
        A new builder that is equal to this builder but with the interfaces implemented by the instrumented type.
      • implement

        public DynamicType.Builder.MethodDefinition.ImplementationDefinition.Optional<S> implement​(java.util.List<? extends java.lang.reflect.Type> interfaceTypes)
        Description copied from interface: DynamicType.Builder

        Implements the supplied interfaces for the instrumented type. Optionally, it is possible to define the methods that are defined by the interfaces or the interfaces' super interfaces. This excludes methods that are explicitly ignored.

        Note: This methods implements the supplied types as is, i.e. any Class values are implemented as raw types if they declare type variables or an owner type.

        Specified by:
        implement in interface DynamicType.Builder<S>
        Parameters:
        interfaceTypes - The interface types to implement.
        Returns:
        A new builder that is equal to this builder but with the interfaces implemented by the instrumented type.
      • implement

        public DynamicType.Builder.MethodDefinition.ImplementationDefinition.Optional<S> implement​(TypeDefinition... interfaceType)
        Description copied from interface: DynamicType.Builder

        Implements the supplied interfaces for the instrumented type. Optionally, it is possible to define the methods that are defined by the interfaces or the interfaces' super interfaces. This excludes methods that are explicitly ignored.

        Note: This methods implements the supplied types as is, i.e. any TypeDescription values are implemented as raw types if they declare type variables or an owner type.

        Specified by:
        implement in interface DynamicType.Builder<S>
        Parameters:
        interfaceType - The interface types to implement.
        Returns:
        A new builder that is equal to this builder but with the interfaces implemented by the instrumented type.
      • typeVariable

        public DynamicType.Builder.TypeVariableDefinition<S> typeVariable​(java.lang.String symbol)
        Description copied from interface: DynamicType.Builder
        Defines the supplied type variable without any bounds as a type variable of the instrumented type.
        Specified by:
        typeVariable in interface DynamicType.Builder<S>
        Parameters:
        symbol - The type variable's symbol.
        Returns:
        A new builder that is equal to this builder but with the given type variable defined for the instrumented type.
      • typeVariable

        public DynamicType.Builder.TypeVariableDefinition<S> typeVariable​(java.lang.String symbol,
                                                                          java.lang.reflect.Type... bound)
        Description copied from interface: DynamicType.Builder
        Defines the supplied type variable with the given bound as a type variable of the instrumented type.
        Specified by:
        typeVariable in interface DynamicType.Builder<S>
        Parameters:
        symbol - The type variable's symbol.
        bound - The type variable's upper bounds. Can also be TargetType if the bound type should be equal to the currently instrumented type.
        Returns:
        A new builder that is equal to this builder but with the given type variable defined for the instrumented type.
      • typeVariable

        public DynamicType.Builder.TypeVariableDefinition<S> typeVariable​(java.lang.String symbol,
                                                                          java.util.List<? extends java.lang.reflect.Type> bounds)
        Description copied from interface: DynamicType.Builder
        Defines the supplied type variable with the given bound as a type variable of the instrumented type.
        Specified by:
        typeVariable in interface DynamicType.Builder<S>
        Parameters:
        symbol - The type variable's symbol.
        bounds - The type variable's upper bounds. Can also be TargetType if the bound type should be equal to the currently instrumented type.
        Returns:
        A new builder that is equal to this builder but with the given type variable defined for the instrumented type.
      • typeVariable

        public DynamicType.Builder.TypeVariableDefinition<S> typeVariable​(java.lang.String symbol,
                                                                          TypeDefinition... bound)
        Description copied from interface: DynamicType.Builder
        Defines the supplied type variable with the given bound as a type variable of the instrumented type.
        Specified by:
        typeVariable in interface DynamicType.Builder<S>
        Parameters:
        symbol - The type variable's symbol.
        bound - The type variable's upper bounds. Can also be TargetType if the bound type should be equal to the currently instrumented type.
        Returns:
        A new builder that is equal to this builder but with the given type variable defined for the instrumented type.
      • defineField

        public DynamicType.Builder.FieldDefinition.Optional.Valuable<S> defineField​(java.lang.String name,
                                                                                    java.lang.reflect.Type type,
                                                                                    ModifierContributor.ForField... modifierContributor)
        Description copied from interface: DynamicType.Builder
        Defines the specified field as a field of the built dynamic type.
        Specified by:
        defineField in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the field.
        type - The type of the field. Can also be TargetType if the field type should be equal to the currently instrumented type.
        modifierContributor - The modifiers of the field.
        Returns:
        A new builder that is equal to this builder but with the given field defined for the instrumented type. Furthermore, it is possible to optionally define a value, annotations or custom attributes for the field.
      • defineField

        public DynamicType.Builder.FieldDefinition.Optional.Valuable<S> defineField​(java.lang.String name,
                                                                                    java.lang.reflect.Type type,
                                                                                    java.util.Collection<? extends ModifierContributor.ForField> modifierContributors)
        Description copied from interface: DynamicType.Builder
        Defines the specified field as a field of the built dynamic type.
        Specified by:
        defineField in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the field.
        type - The type of the field. Can also be TargetType if the field type should be equal to the currently instrumented type.
        modifierContributors - The modifiers of the field.
        Returns:
        A new builder that is equal to this builder but with the given field defined for the instrumented type. Furthermore, it is possible to optionally define a value, annotations or custom attributes for the field.
      • defineField

        public DynamicType.Builder.FieldDefinition.Optional.Valuable<S> defineField​(java.lang.String name,
                                                                                    java.lang.reflect.Type type,
                                                                                    int modifiers)
        Description copied from interface: DynamicType.Builder
        Defines the specified field as a field of the built dynamic type.
        Specified by:
        defineField in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the field.
        type - The type of the field. Can also be TargetType if the field type should be equal to the currently instrumented type.
        modifiers - The modifiers of the field.
        Returns:
        A new builder that is equal to this builder but with the given field defined for the instrumented type. Furthermore, it is possible to optionally define a value, annotations or custom attributes for the field.
      • defineField

        public DynamicType.Builder.FieldDefinition.Optional.Valuable<S> defineField​(java.lang.String name,
                                                                                    TypeDefinition type,
                                                                                    ModifierContributor.ForField... modifierContributor)
        Description copied from interface: DynamicType.Builder
        Defines the specified field as a field of the built dynamic type.
        Specified by:
        defineField in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the field.
        type - The type of the field. Can also be TargetType if the field type should be equal to the currently instrumented type.
        modifierContributor - The modifiers of the field.
        Returns:
        A new builder that is equal to this builder but with the given field defined for the instrumented type. Furthermore, it is possible to optionally define a value, annotations or custom attributes for the field.
      • defineField

        public DynamicType.Builder.FieldDefinition.Optional.Valuable<S> defineField​(java.lang.String name,
                                                                                    TypeDefinition type,
                                                                                    java.util.Collection<? extends ModifierContributor.ForField> modifierContributors)
        Description copied from interface: DynamicType.Builder
        Defines the specified field as a field of the built dynamic type.
        Specified by:
        defineField in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the field.
        type - The type of the field. Can also be TargetType if the field type should be equal to the currently instrumented type.
        modifierContributors - The modifiers of the field.
        Returns:
        A new builder that is equal to this builder but with the given field defined for the instrumented type. Furthermore, it is possible to optionally define a value, annotations or custom attributes for the field.
      • define

        public DynamicType.Builder.FieldDefinition.Optional.Valuable<S> define​(java.lang.reflect.Field field)
        Description copied from interface: DynamicType.Builder
        Defines a field that is similar to the supplied field but without copying any annotations on the field.
        Specified by:
        define in interface DynamicType.Builder<S>
        Parameters:
        field - The field to imitate as a field of the instrumented type.
        Returns:
        A new builder that is equal to this builder but with the given field defined for the instrumented type. Furthermore, it is possible to optionally define a value, annotations or custom attributes for the field.
      • define

        public DynamicType.Builder.FieldDefinition.Optional.Valuable<S> define​(FieldDescription field)
        Description copied from interface: DynamicType.Builder
        Defines a field that is similar to the supplied field but without copying any annotations on the field.
        Specified by:
        define in interface DynamicType.Builder<S>
        Parameters:
        field - The field to imitate as a field of the instrumented type.
        Returns:
        A new builder that is equal to this builder but with the given field defined for the instrumented type. Furthermore, it is possible to optionally define a value, annotations or custom attributes for the field.
      • serialVersionUid

        public DynamicType.Builder.FieldDefinition.Optional<S> serialVersionUid​(long serialVersionUid)
        Description copied from interface: DynamicType.Builder
        Defines a private, static, final field for a serial version UID of the given value.
        Specified by:
        serialVersionUid in interface DynamicType.Builder<S>
        Parameters:
        serialVersionUid - The serial version UID to define as a value.
        Returns:
        A new builder that is equal to this builder but with the given type variable defined for the instrumented type. Furthermore, it is possible to optionally define a value, annotations or custom attributes for the field.
      • field

        public DynamicType.Builder.FieldDefinition.Valuable<S> field​(ElementMatcher<? super FieldDescription> matcher)
        Description copied from interface: DynamicType.Builder

        Matches a field that is already declared by the instrumented type. This gives opportunity to change that field's default value, annotations or custom attributes.

        When a type is redefined or rebased, any annotations that the field declared previously is preserved as it is if Byte Buddy is configured to retain such annotations by AnnotationRetention.ENABLED. If any existing annotations should be altered, annotation retention must be disabled.

        If a field is already matched by a previously specified field matcher, the new field definition gets precedence over the previous definition, i.e. the previous field definition is no longer applied.

        Specified by:
        field in interface DynamicType.Builder<S>
        Parameters:
        matcher - The matcher that determines what declared fields are affected by the subsequent specification.
        Returns:
        A builder that allows for changing a field's definition.
      • ignoreAlso

        public DynamicType.Builder<S> ignoreAlso​(ElementMatcher<? super MethodDescription> ignoredMethods)
        Description copied from interface: DynamicType.Builder

        Specifies to exclude any method that is matched by the supplied matcher from instrumentation. Previously supplied matchers remain valid after supplying a new matcher, i.e. any method that is matched by a previously supplied matcher is always ignored.

        When ignoring a type, previously registered matchers are applied before this matcher. If a previous matcher indicates that a type is to be ignored, this matcher is no longer executed.

        Specified by:
        ignoreAlso in interface DynamicType.Builder<S>
        Parameters:
        ignoredMethods - The matcher for determining what methods to exclude from instrumentation.
        Returns:
        A new builder that is equal to this builder but that is excluding any method that is matched by the supplied matcher from instrumentation.
      • defineMethod

        public DynamicType.Builder.MethodDefinition.ParameterDefinition.Initial<S> defineMethod​(java.lang.String name,
                                                                                                java.lang.reflect.Type returnType,
                                                                                                ModifierContributor.ForMethod... modifierContributor)
        Description copied from interface: DynamicType.Builder
        Defines the specified method to be declared by the instrumented type. Method parameters or parameter types, declared exceptions and type variables can be defined in subsequent steps.
        Specified by:
        defineMethod in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the method.
        returnType - The method's return type. Can also be TargetType if the return type should be equal to the currently instrumented type.
        modifierContributor - The method's modifiers.
        Returns:
        A builder that allows for further defining the method, either by adding more properties or by defining an implementation.
      • defineMethod

        public DynamicType.Builder.MethodDefinition.ParameterDefinition.Initial<S> defineMethod​(java.lang.String name,
                                                                                                java.lang.reflect.Type returnType,
                                                                                                java.util.Collection<? extends ModifierContributor.ForMethod> modifierContributors)
        Description copied from interface: DynamicType.Builder
        Defines the specified method to be declared by the instrumented type. Method parameters or parameter types, declared exceptions and type variables can be defined in subsequent steps.
        Specified by:
        defineMethod in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the method.
        returnType - The method's return type. Can also be TargetType if the return type should be equal to the currently instrumented type.
        modifierContributors - The method's modifiers.
        Returns:
        A builder that allows for further defining the method, either by adding more properties or by defining an implementation.
      • defineMethod

        public DynamicType.Builder.MethodDefinition.ParameterDefinition.Initial<S> defineMethod​(java.lang.String name,
                                                                                                java.lang.reflect.Type returnType,
                                                                                                int modifiers)
        Description copied from interface: DynamicType.Builder
        Defines the specified method to be declared by the instrumented type. Method parameters or parameter types, declared exceptions and type variables can be defined in subsequent steps.
        Specified by:
        defineMethod in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the method.
        returnType - The method's return type. Can also be TargetType if the return type should be equal to the currently instrumented type.
        modifiers - The method's modifiers.
        Returns:
        A builder that allows for further defining the method, either by adding more properties or by defining an implementation.
      • defineMethod

        public DynamicType.Builder.MethodDefinition.ParameterDefinition.Initial<S> defineMethod​(java.lang.String name,
                                                                                                TypeDefinition returnType,
                                                                                                ModifierContributor.ForMethod... modifierContributor)
        Description copied from interface: DynamicType.Builder
        Defines the specified method to be declared by the instrumented type. Method parameters or parameter types, declared exceptions and type variables can be defined in subsequent steps.
        Specified by:
        defineMethod in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the method.
        returnType - The method's return type. Can also be TargetType if the return type should be equal to the currently instrumented type.
        modifierContributor - The method's modifiers.
        Returns:
        A builder that allows for further defining the method, either by adding more properties or by defining an implementation.
      • defineMethod

        public DynamicType.Builder.MethodDefinition.ParameterDefinition.Initial<S> defineMethod​(java.lang.String name,
                                                                                                TypeDefinition returnType,
                                                                                                java.util.Collection<? extends ModifierContributor.ForMethod> modifierContributors)
        Description copied from interface: DynamicType.Builder
        Defines the specified method to be declared by the instrumented type. Method parameters or parameter types, declared exceptions and type variables can be defined in subsequent steps.
        Specified by:
        defineMethod in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the method.
        returnType - The method's return type. Can also be TargetType if the return type should be equal to the currently instrumented type.
        modifierContributors - The method's modifiers.
        Returns:
        A builder that allows for further defining the method, either by adding more properties or by defining an implementation.
      • define

        public DynamicType.Builder.MethodDefinition.ImplementationDefinition<S> define​(java.lang.reflect.Constructor<?> constructor)
        Description copied from interface: DynamicType.Builder
        Defines a constructor that is similar to the supplied constructor but without copying any annotations of the constructor or constructor parameters.
        Specified by:
        define in interface DynamicType.Builder<S>
        Parameters:
        constructor - The constructor to imitate as a method of the instrumented type.
        Returns:
        A builder that allows for defining an implementation for the constructor.
      • define

        public DynamicType.Builder.MethodDefinition.ImplementationDefinition<S> define​(MethodDescription methodDescription)
        Description copied from interface: DynamicType.Builder
        Defines a method or constructor that is similar to the supplied method description but without copying any annotations of the method/constructor or method/constructor parameters.
        Specified by:
        define in interface DynamicType.Builder<S>
        Parameters:
        methodDescription - The method description to imitate as a method or constructor of the instrumented type.
        Returns:
        A builder that allows for defining an implementation for the method or constructor.
      • defineProperty

        public DynamicType.Builder.FieldDefinition.Optional<S> defineProperty​(java.lang.String name,
                                                                              java.lang.reflect.Type type)
        Description copied from interface: DynamicType.Builder
        Defines a Java bean property with the specified name.
        Specified by:
        defineProperty in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the property.
        type - The property type.
        Returns:
        A builder that defines the specified property where the field holding the property can be refined by subsequent steps.
      • defineProperty

        public DynamicType.Builder.FieldDefinition.Optional<S> defineProperty​(java.lang.String name,
                                                                              java.lang.reflect.Type type,
                                                                              boolean readOnly)
        Description copied from interface: DynamicType.Builder
        Defines a Java bean property with the specified name.
        Specified by:
        defineProperty in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the property.
        type - The property type.
        readOnly - true if the property is read only, i.e. no setter should be defined and the field should be final.
        Returns:
        A builder that defines the specified property where the field holding the property can be refined by subsequent steps.
      • defineProperty

        public DynamicType.Builder.FieldDefinition.Optional<S> defineProperty​(java.lang.String name,
                                                                              TypeDefinition type,
                                                                              boolean readOnly)
        Description copied from interface: DynamicType.Builder
        Defines a Java bean property with the specified name.
        Specified by:
        defineProperty in interface DynamicType.Builder<S>
        Parameters:
        name - The name of the property.
        type - The property type.
        readOnly - true if the property is read only, i.e. no setter should be defined and the field should be final.
        Returns:
        A builder that defines the specified property where the field holding the property can be refined by subsequent steps.
      • method

        public DynamicType.Builder.MethodDefinition.ImplementationDefinition<S> method​(ElementMatcher<? super MethodDescription> matcher)
        Description copied from interface: DynamicType.Builder

        Matches a method that is already declared or inherited by the instrumented type. This gives opportunity to change or to override that method's implementation, default value, annotations or custom attributes. It is also possible to make a method abstract.

        When a type is redefined or rebased, any annotations that the method declared previously is preserved as it is if Byte Buddy is configured to retain such annotations by AnnotationRetention.ENABLED. If any existing annotations should be altered, annotation retention must be disabled.

        If a method is already matched by a previously specified matcher, the new method definition gets precedence over the previous definition, i.e. the previous method definition is no longer applied.

        Note that the specified definition does never apply for methods that are explicitly ignored.

        Specified by:
        method in interface DynamicType.Builder<S>
        Parameters:
        matcher - The matcher that determines what methods are affected by the subsequent specification.
        Returns:
        A builder that allows for changing a method's or constructor's definition.
      • constructor

        public DynamicType.Builder.MethodDefinition.ImplementationDefinition<S> constructor​(ElementMatcher<? super MethodDescription> matcher)
        Description copied from interface: DynamicType.Builder

        Matches a constructor that is already declared by the instrumented type. This gives opportunity to change that constructor's implementation, default value, annotations or custom attributes.

        When a type is redefined or rebased, any annotations that the constructor declared previously is preserved as it is if Byte Buddy is configured to retain such annotations by AnnotationRetention.ENABLED. If any existing annotations should be altered, annotation retention must be disabled.

        If a constructor is already matched by a previously specified matcher, the new constructor definition gets precedence over the previous definition, i.e. the previous constructor definition is no longer applied.

        Note that the specified definition does never apply for methods that are explicitly ignored.

        Specified by:
        constructor in interface DynamicType.Builder<S>
        Parameters:
        matcher - The matcher that determines what constructors are affected by the subsequent specification.
        Returns:
        A builder that allows for changing a method's or constructor's definition.
      • invokable

        public DynamicType.Builder.MethodDefinition.ImplementationDefinition<S> invokable​(ElementMatcher<? super MethodDescription> matcher)
        Description copied from interface: DynamicType.Builder

        Matches a method or constructor that is already declared or inherited by the instrumented type. This gives opportunity to change or to override that method's or constructor's implementation, default value, annotations or custom attributes. It is also possible to make a method abstract.

        When a type is redefined or rebased, any annotations that the method or constructor declared previously is preserved as it is if Byte Buddy is configured to retain such annotations by AnnotationRetention.ENABLED. If any existing annotations should be altered, annotation retention must be disabled.

        If a method or constructor is already matched by a previously specified matcher, the new definition gets precedence over the previous definition, i.e. the previous definition is no longer applied.

        Note that the specified definition does never apply for methods that are explicitly ignored.

        Important: It is possible to instrument the dynamic type's initializer. Depending on the used TypeResolutionStrategy, the type initializer might be run before Byte Buddy could apply any LoadedTypeInitializers which are responsible for preparing the instrumented type prior to the initializer's execution. For preparing the type prior to executing the initializer, an TypeResolutionStrategy.Active resolver must be chosen.

        Specified by:
        invokable in interface DynamicType.Builder<S>
        Parameters:
        matcher - The matcher that determines what methods or constructors are affected by the subsequent specification.
        Returns:
        A builder that allows for changing a method's or constructor's definition.
      • make

        public DynamicType.Unloaded<S> make​(TypePool typePool)
        Description copied from interface: DynamicType.Builder

        Creates the dynamic type this builder represents. If the specified dynamic type is not legal, an IllegalStateException is thrown.

        The dynamic type is initialized using a TypeResolutionStrategy.Passive strategy. Using this strategy, no LoadedTypeInitializer is run during the execution of the type's initializer such that no Implementation used for executing the initializer must rely on such an initializer.

        Specified by:
        make in interface DynamicType.Builder<S>
        Parameters:
        typePool - A type pool that is used for computing stack map frames by the underlying class writer, if required.
        Returns:
        An unloaded dynamic type representing the type specified by this builder.
      • make

        public DynamicType.Unloaded<S> make()
        Description copied from interface: DynamicType.Builder

        Creates the dynamic type this builder represents. If the specified dynamic type is not legal, an IllegalStateException is thrown.

        Other than DynamicType.Builder.make(TypePool), this method supplies a context-dependant type pool to the underlying class writer. Supplying a type pool only makes sense if custom byte code is created by adding a custom AsmVisitorWrapper where ASM might be required to compute stack map frames by processing information over any mentioned type's class hierarchy.

        The dynamic type is initialized using a TypeResolutionStrategy.Passive strategy. Using this strategy, no LoadedTypeInitializer is run during the execution of the type's initializer such that no Implementation used for executing the initializer must rely on such an initializer.

        Specified by:
        make in interface DynamicType.Builder<S>
        Returns:
        An unloaded dynamic type representing the type specified by this builder.