Package org.codehaus.jackson.map.type
Class MapLikeType
- java.lang.Object
-
- org.codehaus.jackson.type.JavaType
-
- org.codehaus.jackson.map.type.TypeBase
-
- org.codehaus.jackson.map.type.MapLikeType
-
- All Implemented Interfaces:
JsonSerializable
,JsonSerializableWithType
- Direct Known Subclasses:
MapType
public class MapLikeType extends TypeBase
Type that represents Map-like types; things that consist of key/value pairs but that do not necessarily implementMap
, but that do not have enough introspection functionality to allow for some level of generic handling. This specifically allows framework to check for configuration and annotation settings used for Map types, and pass these to custom handlers that may be more familiar with actual type.- Since:
- 1.8
-
-
Field Summary
Fields Modifier and Type Field Description protected JavaType
_keyType
Type of keys of Map.protected JavaType
_valueType
Type of values of Map.-
Fields inherited from class org.codehaus.jackson.type.JavaType
_class, _hashCode, _typeHandler, _valueHandler
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
MapLikeType(java.lang.Class<?> mapType, JavaType keyT, JavaType valueT)
Deprecated.protected
MapLikeType(java.lang.Class<?> mapType, JavaType keyT, JavaType valueT, java.lang.Object valueHandler, java.lang.Object typeHandler)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected JavaType
_narrow(java.lang.Class<?> subclass)
protected java.lang.String
buildCanonicalName()
static MapLikeType
construct(java.lang.Class<?> rawType, JavaType keyT, JavaType valueT)
JavaType
containedType(int index)
Method for accessing definitions of contained ("child") types.int
containedTypeCount()
Method for checking how many contained types this type has.java.lang.String
containedTypeName(int index)
Not sure if we should count on this, but type names for core interfaces are "K" and "V" respectively.boolean
equals(java.lang.Object o)
JavaType
getContentType()
Method for accessing content type of this type, if type has such a thing: simple types do not, structured types do (like arrays, Collections and Maps)java.lang.StringBuilder
getErasedSignature(java.lang.StringBuilder sb)
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.java.lang.StringBuilder
getGenericSignature(java.lang.StringBuilder sb)
JavaType
getKeyType()
Method for accessing key type for this type, assuming type has such a concept (only Map types do)boolean
isContainerType()
boolean
isMapLikeType()
boolean
isTrueMapType()
Method that can be used for checking whether this type is a "real" Collection type; meaning whether it represents a parameterized subtype ofCollection
or just something that acts like one.JavaType
narrowContentsBy(java.lang.Class<?> contentClass)
JavaType
narrowKey(java.lang.Class<?> keySubclass)
java.lang.String
toString()
JavaType
widenContentsBy(java.lang.Class<?> contentClass)
JavaType
widenKey(java.lang.Class<?> keySubclass)
MapLikeType
withContentTypeHandler(java.lang.Object h)
"Copy method" that will construct a new instance that is identical to this instance, except that its content type will have specified type handler assigned.MapLikeType
withContentValueHandler(java.lang.Object h)
MapLikeType
withKeyTypeHandler(java.lang.Object h)
MapLikeType
withKeyValueHandler(java.lang.Object h)
MapLikeType
withTypeHandler(java.lang.Object h)
"Copy method" that will construct a new instance that is identical to this instance, except that it will have specified type handler assigned.MapLikeType
withValueHandler(java.lang.Object h)
-
Methods inherited from class org.codehaus.jackson.map.type.TypeBase
_classSignature, getTypeHandler, getValueHandler, serialize, serializeWithType, toCanonical
-
Methods inherited from class org.codehaus.jackson.type.JavaType
_assertSubclass, _widen, forcedNarrowBy, getErasedSignature, getGenericSignature, getRawClass, hasGenericTypes, hashCode, hasRawClass, isAbstract, isArrayType, isCollectionLikeType, isConcrete, isEnumType, isFinal, isInterface, isPrimitive, isThrowable, narrowBy, setValueHandler, widenBy
-
-
-
-
Method Detail
-
construct
public static MapLikeType construct(java.lang.Class<?> rawType, JavaType keyT, JavaType valueT)
-
_narrow
protected JavaType _narrow(java.lang.Class<?> subclass)
-
narrowContentsBy
public JavaType narrowContentsBy(java.lang.Class<?> contentClass)
- Specified by:
narrowContentsBy
in classJavaType
-
widenContentsBy
public JavaType widenContentsBy(java.lang.Class<?> contentClass)
- Specified by:
widenContentsBy
in classJavaType
-
narrowKey
public JavaType narrowKey(java.lang.Class<?> keySubclass)
-
widenKey
public JavaType widenKey(java.lang.Class<?> keySubclass)
- Since:
- 1.8
-
withTypeHandler
public MapLikeType withTypeHandler(java.lang.Object h)
Description copied from class:JavaType
"Copy method" that will construct a new instance that is identical to this instance, except that it will have specified type handler assigned.- Specified by:
withTypeHandler
in classJavaType
- Returns:
- Newly created type instance
-
withContentTypeHandler
public MapLikeType withContentTypeHandler(java.lang.Object h)
Description copied from class:JavaType
"Copy method" that will construct a new instance that is identical to this instance, except that its content type will have specified type handler assigned.- Specified by:
withContentTypeHandler
in classJavaType
- Returns:
- Newly created type instance
-
withValueHandler
public MapLikeType withValueHandler(java.lang.Object h)
- Overrides:
withValueHandler
in classJavaType
-
withContentValueHandler
public MapLikeType withContentValueHandler(java.lang.Object h)
- Overrides:
withContentValueHandler
in classJavaType
-
buildCanonicalName
protected java.lang.String buildCanonicalName()
- Specified by:
buildCanonicalName
in classTypeBase
-
isContainerType
public boolean isContainerType()
- Specified by:
isContainerType
in classJavaType
- Returns:
- True if type represented is a container type; this includes array, Map and Collection types.
-
isMapLikeType
public boolean isMapLikeType()
- Overrides:
isMapLikeType
in classJavaType
- Returns:
- True if type is either true
Map
type, or something similar (meaning it has at least two type parameter; first one describing key type, second value type)
-
getKeyType
public JavaType getKeyType()
Description copied from class:JavaType
Method for accessing key type for this type, assuming type has such a concept (only Map types do)- Overrides:
getKeyType
in classJavaType
-
getContentType
public JavaType getContentType()
Description copied from class:JavaType
Method for accessing content type of this type, if type has such a thing: simple types do not, structured types do (like arrays, Collections and Maps)- Overrides:
getContentType
in classJavaType
-
containedTypeCount
public int containedTypeCount()
Description copied from class:JavaType
Method for checking how many contained types this type has. Contained types are usually generic types, so that generic Maps have 2 contained types.- Overrides:
containedTypeCount
in classJavaType
-
containedType
public JavaType containedType(int index)
Description copied from class:JavaType
Method for accessing definitions of contained ("child") types.- Overrides:
containedType
in classJavaType
- Parameters:
index
- Index of contained type to return- Returns:
- Contained type at index, or null if no such type exists (no exception thrown)
-
containedTypeName
public java.lang.String containedTypeName(int index)
Not sure if we should count on this, but type names for core interfaces are "K" and "V" respectively. For now let's assume this should work.- Overrides:
containedTypeName
in classJavaType
- Parameters:
index
- Index of contained type to return- Returns:
- Contained type at index, or null if no such type exists (no exception thrown)
-
getErasedSignature
public java.lang.StringBuilder getErasedSignature(java.lang.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 classTypeBase
- Parameters:
sb
- StringBuilder to append signature to- Returns:
- StringBuilder that was passed in; returned to allow call chaining
-
getGenericSignature
public java.lang.StringBuilder getGenericSignature(java.lang.StringBuilder sb)
- Specified by:
getGenericSignature
in classTypeBase
- Parameters:
sb
- StringBuilder to append signature to- Returns:
- StringBuilder that was passed in; returned to allow call chaining
-
withKeyTypeHandler
public MapLikeType withKeyTypeHandler(java.lang.Object h)
- Since:
- 1.9
-
withKeyValueHandler
public MapLikeType withKeyValueHandler(java.lang.Object h)
- Since:
- 1.9
-
isTrueMapType
public boolean isTrueMapType()
Method that can be used for checking whether this type is a "real" Collection type; meaning whether it represents a parameterized subtype ofCollection
or just something that acts like one.- Since:
- 1.8
-
-