All Implemented Interfaces:
JsonSerializable, Serializable, Type
Direct Known Subclasses:
ArrayType, CollectionLikeType, MapLikeType, PlaceholderForType, ResolvedRecursiveType, SimpleType

public abstract class TypeBase extends JavaType implements JsonSerializable
See Also:
  • Field Details

    • _superClass

      protected final JavaType _superClass
    • _superInterfaces

      protected final JavaType[] _superInterfaces
    • _bindings

      protected final TypeBindings _bindings
      Bindings in effect for this type instance; possibly empty. Needed when resolving types declared in members of this type (if any).
      Since:
      2.7
  • Constructor Details

    • TypeBase

      protected TypeBase(Class<?> raw, TypeBindings bindings, JavaType superClass, JavaType[] superInts, int hash, Object valueHandler, Object typeHandler, boolean asStatic)
      Main constructor to use by extending classes.
    • TypeBase

      protected TypeBase(TypeBase base)
      Copy-constructor used when refining/upgrading type instances.
      Since:
      2.7
  • Method Details

    • toCanonical

      public String toCanonical()
      Description copied from class: ResolvedType
      Method that can be used to serialize type into form from which it can be fully deserialized from at a later point (using TypeFactory from mapper package). For simple types this is same as calling Class.getName(), but for structured types it may additionally contain type information about contents.
      Specified by:
      toCanonical in class ResolvedType
      Returns:
      String representation of the fully resolved type
    • buildCanonicalName

      protected String buildCanonicalName()
    • getGenericSignature

      public abstract StringBuilder getGenericSignature(StringBuilder sb)
      Specified by:
      getGenericSignature in class JavaType
      Parameters:
      sb - StringBuilder to append signature to
      Returns:
      StringBuilder that was passed in; returned to allow call chaining
    • getErasedSignature

      public abstract StringBuilder getErasedSignature(StringBuilder sb)
      Description copied from class: JavaType
      Method for accessing signature without generic type information, in form compatible with all versions of JVM, and specifically used for type descriptions when generating byte code.
      Specified by:
      getErasedSignature in class JavaType
      Parameters:
      sb - StringBuilder to append signature to
      Returns:
      StringBuilder that was passed in; returned to allow call chaining
    • getBindings

      public TypeBindings getBindings()
      Specified by:
      getBindings in class JavaType
    • containedTypeCount

      public int containedTypeCount()
      Description copied from class: ResolvedType
      Method for checking how many contained types this type has. Contained types are usually generic types, so that generic Maps have 2 contained types.
      Specified by:
      containedTypeCount in class JavaType
      Returns:
      Number of contained types that may be accessed
    • containedType

      public JavaType containedType(int index)
      Description copied from class: ResolvedType
      Method for accessing definitions of contained ("child") types.
      Specified by:
      containedType in class JavaType
      Parameters:
      index - Index of contained type to return
      Returns:
      Contained type at index, or null if no such type exists (no exception thrown)
    • containedTypeName

      @Deprecated public String containedTypeName(int index)
      Deprecated.
      Description copied from class: ResolvedType
      Method for accessing name of type variable in indicated position. If no name is bound, will use placeholders (derived from 0-based index); if no type variable or argument exists with given index, null is returned.
      Specified by:
      containedTypeName in class JavaType
      Parameters:
      index - Index of contained type to return
      Returns:
      Contained type at index, or null if no such type exists (no exception thrown)
    • getSuperClass

      public JavaType getSuperClass()
      Description copied from class: JavaType
      Accessor for finding fully resolved parent class of this type, if it has one; null if not.
      Specified by:
      getSuperClass in class JavaType
    • getInterfaces

      public List<JavaType> getInterfaces()
      Description copied from class: JavaType
      Accessor for finding fully resolved interfaces this type implements, if any; empty array if none.
      Specified by:
      getInterfaces in class JavaType
    • findSuperType

      public final JavaType findSuperType(Class<?> rawTarget)
      Description copied from class: JavaType
      Method that may be called to find representation of given type within type hierarchy of this type: either this type (if this type has given erased type), one of its supertypes that has the erased types, or null if target is neither this type or any of its supertypes.
      Specified by:
      findSuperType in class JavaType
    • findTypeParameters

      public JavaType[] findTypeParameters(Class<?> expType)
      Description copied from class: JavaType
      Method that may be used to find paramaterization this type has for given type-erased generic target type.
      Specified by:
      findTypeParameters in class JavaType
    • serializeWithType

      public void serializeWithType(JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer) throws IOException
      Description copied from interface: JsonSerializable
      Serialization method called when additional type information is expected to be included in serialization, for deserialization to use.

      Usually implementation consists of a call to TypeSerializer.writeTypePrefix(edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.core.JsonGenerator, edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.core.type.WritableTypeId) followed by serialization of contents, followed by a call to TypeSerializer.writeTypeSuffix(edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.core.JsonGenerator, edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.core.type.WritableTypeId)). Details of the type id argument to pass depend on shape of JSON Object used (Array, Object or scalar like String/Number/Boolean).

      Note that some types (most notably, "natural" types: String, Integer, Double and Boolean) never include type information.

      Specified by:
      serializeWithType in interface JsonSerializable
      Throws:
      IOException
    • serialize

      public void serialize(JsonGenerator gen, SerializerProvider provider) throws IOException
      Description copied from interface: JsonSerializable
      Serialization method called when no additional type information is to be included in serialization.
      Specified by:
      serialize in interface JsonSerializable
      Throws:
      IOException
    • _classSignature

      protected static StringBuilder _classSignature(Class<?> cls, StringBuilder sb, boolean trailingSemicolon)
      Parameters:
      trailingSemicolon - Whether to add trailing semicolon for non-primitive (reference) types or not
    • _bogusSuperClass

      protected static JavaType _bogusSuperClass(Class<?> cls)
      Internal helper method used to figure out nominal super-class for deprecated factory methods / constructors, where we are not given properly resolved supertype hierarchy. Will basically give `JavaType` for `java.lang.Object` for classes other than `java.lafgn.Object`; null for others.
      Since:
      2.7
    • _hasNTypeParameters

      protected boolean _hasNTypeParameters(int count)