Package iu.type

Class DeclaredElementBase<D,E extends AnnotatedElement>

Type Parameters:
D - declaring type
E - generic declaration type
All Implemented Interfaces:
IuAnnotatedElement, IuDeclaredElement<D>
Direct Known Subclasses:
ExecutableBase, FieldFacade, TypeTemplate

abstract sealed class DeclaredElementBase<D,E extends AnnotatedElement> extends AnnotatedElementBase<E> implements IuDeclaredElement<D> permits ExecutableBase<D,R,E>, FieldFacade<D,T>, TypeTemplate<D,T>
Implements the facade view of an GenericDeclaration.
  • Field Details

    • type

      final Type type
      Holds the generic type associated with the declared element.

      Initialized first (after preInitHook) accessible early.

    • declaringType

      final TypeFacade<?,D> declaringType
      Hold an unguarded reference to the declaring TypeFacade, to facilitate subclasses registering ElementBase.postInit(Runnable) hooks.
  • Constructor Details

    • DeclaredElementBase

      DeclaredElementBase(E annotatedElement, Type type, TypeTemplate<?,D> declaringTypeTemplate)
      Default constructor, for use by all subclasses extended by TypeTemplate.
      Parameters:
      annotatedElement - parameterized element to provide a view of
      type - generic type associated with the element
      declaringTypeTemplate - type template for the type that declares this element
    • DeclaredElementBase

      DeclaredElementBase(E annotatedElement, Consumer<TypeTemplate<?,?>> preInitHook, Type type, TypeTemplate<?,D> declaringTypeTemplate)
      Constructor for use by TypeTemplate.
      Parameters:
      annotatedElement - parameterized element to provide a view of
      preInitHook - used by TypeFactory
      type - generic type associated with the element
      declaringTypeTemplate - type template for the type that declares this element
  • Method Details