Interface InstrumentedType

    • Method Detail

      • withField

        InstrumentedType withField​(FieldDescription.Token token)
        Creates a new instrumented type that includes a new field.
        Parameters:
        token - A token that represents the field's shape.
        Returns:
        A new instrumented type that is equal to this instrumented type but with the additional field.
      • withMethod

        InstrumentedType withMethod​(MethodDescription.Token token)
        Creates a new instrumented type that includes a new method or constructor.
        Parameters:
        token - A token that represents the method's shape.
        Returns:
        A new instrumented type that is equal to this instrumented type but with the additional method.
      • withRecordComponent

        InstrumentedType withRecordComponent​(RecordComponentDescription.Token token)
        Creates a new instrumented type that includes a new record component.
        Parameters:
        token - A token that represents the record component's shape.
        Returns:
        A new instrumented type that is equal to this instrumented type but with the additional record component.
      • withModifiers

        InstrumentedType withModifiers​(int modifiers)
        Creates a new instrumented type with changed modifiers.
        Parameters:
        modifiers - The instrumented type's modifiers.
        Returns:
        A new instrumented type that is equal to this instrumented type but with the given modifiers.
      • withInterfaces

        InstrumentedType withInterfaces​(TypeList.Generic interfaceTypes)
        Creates a new instrumented type with the given interfaces implemented.
        Parameters:
        interfaceTypes - The interface types to implement.
        Returns:
        A new instrumented type that is equal to this instrumented type but with the given interfaces implemented.
      • withTypeVariable

        InstrumentedType withTypeVariable​(TypeVariableToken typeVariable)
        Creates a new instrumented type with the given type variable defined.
        Parameters:
        typeVariable - The type variable to declare.
        Returns:
        A new instrumented type that is equal to this instrumented type but with the given type variable declared.
      • withAnnotations

        InstrumentedType withAnnotations​(java.util.List<? extends AnnotationDescription> annotationDescriptions)
        Creates a new instrumented type with the given annotations.
        Parameters:
        annotationDescriptions - The annotations to add to the instrumented type.
        Returns:
        A new instrumented type that is equal to this instrumented type but annotated with the given annotations
      • withNestHost

        InstrumentedType withNestHost​(TypeDescription nestHost)
        Creates a new instrumented type with the supplied nest host. An instrumented type can be its own nest host. Setting a nest host removes all nest members from the instrumented type.
        Parameters:
        nestHost - The nest host of the created instrumented type.
        Returns:
        A new instrumented type with the supplied type as its nest host.
      • withNestMembers

        InstrumentedType withNestMembers​(TypeList nestMembers)
        Creates a new instrumented types with the supplied nest members added to this instrumented type. The instrumented type is defined as a nest host if this method is invoked. Any previous nest members are prepended to the supplied types.
        Parameters:
        nestMembers - The nest members to add to the created instrumented type.
        Returns:
        A new instrumented type that applies the supplied nest members.
      • withEnclosingType

        InstrumentedType withEnclosingType​(TypeDescription enclosingType)
        Creates a new instrumented type with the supplied enclosing type.
        Parameters:
        enclosingType - The type to define as the created instrumented type's enclosing type.
        Returns:
        A new instrumented type with the supplied type as its enclosing type.
      • withEnclosingMethod

        InstrumentedType withEnclosingMethod​(MethodDescription.InDefinedShape enclosingMethod)
        Creates a new instrumented type with the supplied enclosing method.
        Parameters:
        enclosingMethod - The method to define as the created instrumented type's enclosing method.
        Returns:
        A new instrumented type with the supplied method as its enclosing method.
      • withDeclaringType

        InstrumentedType withDeclaringType​(TypeDescription declaringType)
        Creates a new instrumented type that is declared by the supplied type..
        Parameters:
        declaringType - The type that declares the instrumented type.
        Returns:
        A new instrumented type that is declared by the instrumented type.
      • withDeclaredTypes

        InstrumentedType withDeclaredTypes​(TypeList declaredTypes)
        Creates a new instrumented type that indicates that it declared the supplied types.
        Parameters:
        declaredTypes - The types to add to the created instrumented type as declared types.
        Returns:
        A new instrumented type that indicates that it has declared the supplied types.
      • withPermittedSubclasses

        InstrumentedType withPermittedSubclasses​(TypeList permittedSubclasses)
        Creates a new instrumented type that includes the supplied permitted subclasses.
        Parameters:
        permittedSubclasses - A list of permitted subclasses to include.
        Returns:
        A new instrumented type that includes the supplied permitted subclasses.
      • withLocalClass

        InstrumentedType withLocalClass​(boolean localClass)
        Creates a new instrumented type that indicates that is defined as a local class. Setting this property resets the anonymous class property.
        Parameters:
        localClass - true if the instrumented type is supposed to be treated as a local class.
        Returns:
        A new instrumented type that is treated as a local class.
      • withAnonymousClass

        InstrumentedType withAnonymousClass​(boolean anonymousClass)
        Creates a new instrumented type that indicates that it is defined as an anonymous class. Setting this property resets the local class property.
        Parameters:
        anonymousClass - true if the instrumented type is supposed to be treated as an anonymous class.
        Returns:
        A new instrumented type that is treated as an anonymous class.
      • withRecord

        InstrumentedType withRecord​(boolean record)
        Creates a new instrumented type that indicates that it defined as a record type. Setting this property to false removes all record components.
        Parameters:
        record - true if the instrumented type is supposed to be a record.
        Returns:
        A new instrumented type that is defined as a record.
      • withSealed

        InstrumentedType withSealed​(boolean sealed)
        Creates a new instrumented type that indicates that it defined as a sealed type.
        Parameters:
        sealed - true if the instrumented type is supposed to be sealed.
        Returns:
        A new instrumented type that is defined as a sealed type if any permitted subclasses are set.
      • withInitializer

        InstrumentedType withInitializer​(LoadedTypeInitializer loadedTypeInitializer)
        Creates a new instrumented type that includes the given LoadedTypeInitializer.
        Parameters:
        loadedTypeInitializer - The type initializer to include.
        Returns:
        A new instrumented type that is equal to this instrumented type but with the additional type initializer.
      • withInitializer

        InstrumentedType withInitializer​(ByteCodeAppender byteCodeAppender)
        Creates a new instrumented type that executes the given initializer in the instrumented type's type initializer.
        Parameters:
        byteCodeAppender - The byte code to add to the type initializer.
        Returns:
        A new instrumented type that is equal to this instrumented type but with the given stack manipulation attached to its type initializer.
      • getLoadedTypeInitializer

        LoadedTypeInitializer getLoadedTypeInitializer()
        Returns the LoadedTypeInitializers that were registered for this instrumented type.
        Returns:
        The registered loaded type initializers for this instrumented type.
      • getTypeInitializer

        TypeInitializer getTypeInitializer()
        Returns this instrumented type's type initializer.
        Returns:
        This instrumented type's type initializer.
      • validated

        TypeDescription validated()
        Validates the instrumented type to define a legal Java type.
        Returns:
        This instrumented type as a non-modifiable type description.