public class GenericsInfo
extends java.lang.Object
Maps also may hold outer type's generics (if type is inner class), because inner classes could access outer
generics (GenericsContext for separation logic).
| Modifier and Type | Class and Description |
|---|---|
static class |
GenericsInfo.DefaultTypeWriter
Default hierarchy writer implementation.
|
static interface |
GenericsInfo.TypeWriter
Customization interface to control types hierarchy to string behaviour.
|
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
SHIFT_MARKER
Single shift marker used to identity hierarchy level for toString.
|
| Constructor and Description |
|---|
GenericsInfo(java.lang.Class<?> root,
java.util.Map<java.lang.Class<?>,java.util.LinkedHashMap<java.lang.String,java.lang.reflect.Type>> types,
java.lang.Class... ignoredTypes) |
| Modifier and Type | Method and Description |
|---|---|
java.lang.Class<?> |
findContextByDeclarationType(java.lang.Class<?> declarationType)
Search class in current hierarchy, containing declaration type.
|
java.util.Set<java.lang.Class<?>> |
getComposingTypes() |
java.lang.Class[] |
getIgnoredTypes() |
java.lang.Class<?> |
getRootClass() |
java.util.Map<java.lang.String,java.lang.reflect.Type> |
getTypeGenerics(java.lang.Class<?> type) |
java.util.Map<java.lang.Class<?>,java.util.LinkedHashMap<java.lang.String,java.lang.reflect.Type>> |
getTypesMap() |
java.lang.String |
toString() |
java.lang.String |
toStringHierarchy(GenericsInfo.TypeWriter typeWriter)
Write current root class hierarchy with resolved generics.
|
public static final java.lang.String SHIFT_MARKER
public GenericsInfo(java.lang.Class<?> root,
java.util.Map<java.lang.Class<?>,java.util.LinkedHashMap<java.lang.String,java.lang.reflect.Type>> types,
java.lang.Class... ignoredTypes)
public java.lang.Class<?> getRootClass()
public java.util.Map<java.lang.String,java.lang.reflect.Type> getTypeGenerics(java.lang.Class<?> type)
type - class to get generics forjava.lang.IllegalArgumentException - is requested class is not present in root class hierarchypublic java.util.Set<java.lang.Class<?>> getComposingTypes()
public java.lang.Class[] getIgnoredTypes()
public java.util.Map<java.lang.Class<?>,java.util.LinkedHashMap<java.lang.String,java.lang.reflect.Type>> getTypesMap()
public java.lang.Class<?> findContextByDeclarationType(java.lang.Class<?> declarationType)
There are to situations: either class is directly in hierarchy or it is outer class for some class in hierarchy (in this case inner class is correct context).
declarationType - generic declaration classpublic java.lang.String toString()
toString in class java.lang.Objectfor customized outputpublic java.lang.String toStringHierarchy(GenericsInfo.TypeWriter typeWriter)
typeWriter - custom type writer