Class TypeInfo.BuilderBase.TypeInfoImpl

java.lang.Object
io.helidon.common.types.TypeInfo.BuilderBase.TypeInfoImpl
All Implemented Interfaces:
Prototype.Api, Annotated, TypeInfo
Enclosing class:
TypeInfo.BuilderBase<BUILDER extends TypeInfo.BuilderBase<BUILDER,PROTOTYPE>,PROTOTYPE extends TypeInfo>

protected static class TypeInfo.BuilderBase.TypeInfoImpl extends Object implements TypeInfo
Generated implementation of the prototype, can be extended by descendant prototype implementations.
  • Constructor Details

    • TypeInfoImpl

      protected TypeInfoImpl(TypeInfo.BuilderBase<?,?> builder)
      Create an instance providing a builder.
      Parameters:
      builder - extending builder base of this prototype
  • Method Details

    • typeName

      public TypeName typeName()
    • description

      public Optional<String> description()
    • typeKind

      public String typeKind()
    • kind

      public ElementKind kind()
    • elementInfo

      public List<TypedElementInfo> elementInfo()
    • otherElementInfo

      public List<TypedElementInfo> otherElementInfo()
    • referencedTypeNamesToAnnotations

      public Map<TypeName,List<Annotation>> referencedTypeNamesToAnnotations()
    • referencedModuleNames

      public Map<TypeName,String> referencedModuleNames()
    • superTypeInfo

      public Optional<TypeInfo> superTypeInfo()
    • interfaceTypeInfo

      public List<TypeInfo> interfaceTypeInfo()
    • modifiers

      public Set<String> modifiers()
    • elementModifiers

      public Set<Modifier> elementModifiers()
    • accessModifier

      public AccessModifier accessModifier()
    • module

      public Optional<String> module()
    • originatingElement

      public Optional<Object> originatingElement()
    • annotations

      public List<Annotation> annotations()
      Description copied from interface: Annotated
      The list of known annotations for this element. Note that "known" implies that the annotation is visible, which depends upon the context in which it was build.
      Specified by:
      annotations in interface Annotated
      Returns:
      the list of annotations on this element
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • hasMetaAnnotation

      default boolean hasMetaAnnotation(TypeName annotation, TypeName metaAnnotation)
      Check if an annotation type has a specific meta annotation.
      Parameters:
      annotation - annotation to check meta annotation for
      metaAnnotation - meta annotation type
      Returns:
      whether the meta annotation is present on the annotation
    • hasMetaAnnotation

      default boolean hasMetaAnnotation(TypeName annotation, TypeName metaAnnotation, boolean inherited)
      Check if an annotation type has a specific meta annotation.
      Parameters:
      annotation - annotation to check meta annotation for
      metaAnnotation - meta annotation type
      inherited - whether to include meta annotations of meta annotations
      Returns:
      whether the meta annotation is present on the annotation
    • metaAnnotation

      default Optional<Annotation> metaAnnotation(TypeName annotation, TypeName metaAnnotation)
      Find a meta annotation.
      Parameters:
      annotation - annotation to check meta annotation for
      metaAnnotation - meta annotation type
      Returns:
      meta annotation, or empty if not defined
    • metaAnnotation

      default Optional<Annotation> metaAnnotation(TypeName annotation, TypeName metaAnnotation, boolean inherited)
      Find a meta annotation.
      Parameters:
      annotation - annotation to check meta annotation for
      metaAnnotation - meta annotation type
      inherited - whether to include meta annotations of meta annotations
      Returns:
      meta annotation, or empty if not defined
    • moduleNameOf

      default Optional<String> moduleNameOf(TypeName typeName)
      Uses referencedModuleNames() to determine if the module name is known for the given type.
      Parameters:
      typeName - the type name to lookup
      Returns:
      the module name if it is known