com.fasterxml.jackson.databind.type

## Class HierarchicType

- java.lang.Object
- - com.fasterxml.jackson.databind.type.HierarchicType

    public class HierarchicType
    extends Object

Simple replacement for `Class` (and/or various Type subtypes) that is used as part of single-path extends/implements chain to express specific relationship between one subtype and one supertype. This is needed for resolving type parameters. Instances are doubly-linked so that chain can be traversed in both directions

### Field Summary

Fields
`protected Type` `_actualType` Type which will be either plain `Class` or `ParameterizedType`.
`protected ParameterizedType` `_genericType`
`protected Class<?>` `_rawClass`
`protected HierarchicType` `_subType`
`protected HierarchicType` `_superType`

### Constructor Summary

Constructors
Constructor and Description
`HierarchicType(Type type)`

### Method Summary

Methods
`ParameterizedType` `asGeneric()`
`HierarchicType` `deepCloneWithoutSubtype()` Method that can be used to create a deep clone of this hierarchic type, including super types (but not subtypes)
`Class<?>` `getRawClass()`
`HierarchicType` `getSubType()`
`HierarchicType` `getSuperType()`
`boolean` `isGeneric()`
`void` `setSubType(HierarchicType sub)`
`void` `setSuperType(HierarchicType sup)`
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### _actualType

    protected final Type _actualType

Type which will be either plain `Class` or `ParameterizedType`.

#### _rawClass

    protected final Class<?> _rawClass

#### _genericType

    protected final ParameterizedType _genericType

#### _superType

    protected HierarchicType _superType

#### _subType

    protected HierarchicType _subType

### Constructor Detail

#### HierarchicType

    public HierarchicType(Type type)

### Method Detail

#### deepCloneWithoutSubtype

    public HierarchicType deepCloneWithoutSubtype()

Method that can be used to create a deep clone of this hierarchic type, including super types (but not subtypes)

#### setSuperType

    public void setSuperType(HierarchicType sup)

#### getSuperType

    public final HierarchicType getSuperType()

#### setSubType

    public void setSubType(HierarchicType sub)

#### getSubType

    public final HierarchicType getSubType()

#### isGeneric

    public final boolean isGeneric()

#### asGeneric

    public final ParameterizedType asGeneric()

#### getRawClass

    public final Class<?> getRawClass()

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`