Class BaseTypeSignature


public class BaseTypeSignature extends TypeSignature
A type signature for a base type (byte, char, double, float, int, long, short, boolean, or void).
  • Field Details

    • typeSignatureChar

      private final char typeSignatureChar
      The type signature character used to represent the base type.
  • Constructor Details

    • BaseTypeSignature

      BaseTypeSignature(char typeSignatureChar)
      Constructor.
  • Method Details

    • getTypeStr

      static String getTypeStr(char typeChar)
      Get the name of the type as a string.
      Parameters:
      typeChar - the type character, e.g. 'I'.
      Returns:
      The name of the type, e.g. "int", or null if there was no match.
    • getTypeChar

      static char getTypeChar(String typeStr)
      Get the name of the type as a string.
      Parameters:
      typeStr - the type character, e.g. "int".
      Returns:
      The type, character, e.g. 'I', or '\0' if there was no match.
    • getType

      static Class<?> getType(char typeChar)
      Get the type for a type character.
      Parameters:
      typeChar - the type character, e.g. 'I'.
      Returns:
      The type class, e.g. int.class, or null if there was no match.
    • getTypeSignatureChar

      public char getTypeSignatureChar()
      Get the type signature char used to represent the type, e.g. 'I' for int.
      Returns:
      the type signature char, as a one-char String.
    • getTypeStr

      public String getTypeStr()
      Get the name of the type as a string.
      Returns:
      The name of the type, such as "int", "float", or "void".
    • getType

      public Class<?> getType()
      Get the type.
      Returns:
      The class of the base type, such as int.class, float.class, or void.class.
    • addTypeAnnotation

      protected void addTypeAnnotation(List<Classfile.TypePathNode> typePath, AnnotationInfo annotationInfo)
      Description copied from class: TypeSignature
      Add a type annotation to this type.
      Specified by:
      addTypeAnnotation in class TypeSignature
      Parameters:
      typePath - The type path.
      annotationInfo - The annotation to add.
    • loadClass

      Class<?> loadClass()
      Description copied from class: ScanResultObject
      Load the class named returned by ScanResultObject.getClassInfo(), or if that returns null, the class named by ScanResultObject.getClassName(). Returns a Class<?> reference for the class.
      Overrides:
      loadClass in class ScanResultObject
      Returns:
      The Class<?> reference for the referenced class.
    • loadClass

      <T> Class<T> loadClass(Class<T> superclassOrInterfaceType)
      Description copied from class: ScanResultObject
      Load the class named returned by ScanResultObject.getClassInfo(), or if that returns null, the class named by ScanResultObject.getClassName(). Returns a Class<?> reference for the class, cast to the requested superclass or interface type.
      Overrides:
      loadClass in class ScanResultObject
      Type Parameters:
      T - the superclass or interface type
      Parameters:
      superclassOrInterfaceType - The type to cast the resulting class reference to.
      Returns:
      The Class<?> reference for the referenced class, or null if the class could not be loaded (or casting failed) and ignoreExceptions is true.
    • parse

      static BaseTypeSignature parse(Parser parser)
      Parse a base type.
      Parameters:
      parser - the parser
      Returns:
      the base type signature
    • getClassName

      protected String getClassName()
      Description copied from class: ScanResultObject
      The name of the class (used by ScanResultObject.getClassInfo() to fetch the ClassInfo object for the class).
      Specified by:
      getClassName in class ScanResultObject
      Returns:
      The class name.
    • getClassInfo

      protected ClassInfo getClassInfo()
      Description copied from class: ScanResultObject
      Get the ClassInfo object for the referenced class, or null if the referenced class was not encountered during scanning (i.e. no ClassInfo object was created for the class during scanning). N.B. even if this method returns null, ScanResultObject.loadClass() may be able to load the referenced class by name.
      Overrides:
      getClassInfo in class ScanResultObject
      Returns:
      The ClassInfo object for the referenced class.
    • findReferencedClassNames

      protected void findReferencedClassNames(Set<String> refdClassNames)
      Get the names of any classes referenced in the type signature.
      Overrides:
      findReferencedClassNames in class TypeSignature
      Parameters:
      refdClassNames - the referenced class names.
    • setScanResult

      void setScanResult(ScanResult scanResult)
      Description copied from class: ScanResultObject
      Set ScanResult backreferences in info objects after scan has completed.
      Overrides:
      setScanResult in class HierarchicalTypeSignature
      Parameters:
      scanResult - the scan result
    • hashCode

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

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsIgnoringTypeParams

      public boolean equalsIgnoringTypeParams(TypeSignature other)
      Description copied from class: TypeSignature
      Compare base types, ignoring generic type parameters.
      Specified by:
      equalsIgnoringTypeParams in class TypeSignature
      Parameters:
      other - the other TypeSignature to compare to.
      Returns:
      True if the two TypeSignature objects are equal, ignoring type parameters.
    • toStringInternal

      protected void toStringInternal(boolean useSimpleNames, AnnotationInfoList annotationsToExclude, StringBuilder buf)
      Description copied from class: HierarchicalTypeSignature
      Render type signature to string.
      Specified by:
      toStringInternal in class HierarchicalTypeSignature
      Parameters:
      useSimpleNames - whether to use simple names for classes.
      annotationsToExclude - toplevel annotations to exclude, to eliminate duplication (toplevel annotations are both class/field/method annotations and type annotations).
      buf - the StringBuilder to write to.