org.codehaus.jackson.mrbean
Class AbstractTypeMaterializer

java.lang.Object
  extended by org.codehaus.jackson.map.AbstractTypeResolver
      extended by org.codehaus.jackson.mrbean.AbstractTypeMaterializer
All Implemented Interfaces:
Versioned

public class AbstractTypeMaterializer
extends AbstractTypeResolver
implements Versioned

Nifty class for pulling implementations of classes out of thin air.

... friends call him Mister Bean... :-)

Since:
1.6
Author:
tatu, sunny

Nested Class Summary
static class AbstractTypeMaterializer.Feature
          Enumeration that defines togglable features that guide the serialization feature.
 
Field Summary
protected  org.codehaus.jackson.mrbean.AbstractTypeMaterializer.MyClassLoader _classLoader
          We will use per-materializer class loader for now; would be nice to find a way to reduce number of class loaders (and hence number of generated classes!) constructed...
protected  String _defaultPackage
          Package name to use as prefix for generated classes.
protected  int _featureFlags
          Bit set that contains all enabled features
protected static int DEFAULT_FEATURE_FLAGS
          Bitfield (set of flags) of all Features that are enabled by default.
static String DEFAULT_PACKAGE_FOR_GENERATED
          Default package to use for generated classes.
 
Constructor Summary
AbstractTypeMaterializer()
           
AbstractTypeMaterializer(ClassLoader parentClassLoader)
           
 
Method Summary
 void disable(AbstractTypeMaterializer.Feature f)
          Method for disabling specified feature.
 void enable(AbstractTypeMaterializer.Feature f)
          Method for enabling specified feature.
 boolean isEnabled(AbstractTypeMaterializer.Feature f)
          Method for checking whether given feature is enabled or not
protected  Class<?> materializeClass(DeserializationConfig config, Class<?> cls)
           
 JavaType resolveAbstractType(DeserializationConfig config, JavaType type)
          Method called to try to resolve an abstract type into concrete type (usually for purposes of deserializing), when no concrete implementation was found.
 void set(AbstractTypeMaterializer.Feature f, boolean state)
          Method for enabling or disabling specified feature.
 void setDefaultPackage(String defPkg)
           
 Version version()
          Method that will return version information stored in and read from jar that contains this class.
 
Methods inherited from class org.codehaus.jackson.map.AbstractTypeResolver
findTypeMapping
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_FEATURE_FLAGS

protected static final int DEFAULT_FEATURE_FLAGS
Bitfield (set of flags) of all Features that are enabled by default.


DEFAULT_PACKAGE_FOR_GENERATED

public static final String DEFAULT_PACKAGE_FOR_GENERATED
Default package to use for generated classes.

See Also:
Constant Field Values

_classLoader

protected final org.codehaus.jackson.mrbean.AbstractTypeMaterializer.MyClassLoader _classLoader
We will use per-materializer class loader for now; would be nice to find a way to reduce number of class loaders (and hence number of generated classes!) constructed...


_featureFlags

protected int _featureFlags
Bit set that contains all enabled features


_defaultPackage

protected String _defaultPackage
Package name to use as prefix for generated classes.

Constructor Detail

AbstractTypeMaterializer

public AbstractTypeMaterializer()

AbstractTypeMaterializer

public AbstractTypeMaterializer(ClassLoader parentClassLoader)
Method Detail

version

public Version version()
Method that will return version information stored in and read from jar that contains this class.

Specified by:
version in interface Versioned
Since:
1.6

isEnabled

public final boolean isEnabled(AbstractTypeMaterializer.Feature f)
Method for checking whether given feature is enabled or not


enable

public void enable(AbstractTypeMaterializer.Feature f)
Method for enabling specified feature.


disable

public void disable(AbstractTypeMaterializer.Feature f)
Method for disabling specified feature.


set

public void set(AbstractTypeMaterializer.Feature f,
                boolean state)
Method for enabling or disabling specified feature.


setDefaultPackage

public void setDefaultPackage(String defPkg)

resolveAbstractType

public JavaType resolveAbstractType(DeserializationConfig config,
                                    JavaType type)
Description copied from class: AbstractTypeResolver
Method called to try to resolve an abstract type into concrete type (usually for purposes of deserializing), when no concrete implementation was found. It will be called after checking all other possibilities, including defaulting.

Overrides:
resolveAbstractType in class AbstractTypeResolver
Parameters:
config - Configuration in use; should always be of type DeserializationConfig
type - Type for which materialization maybe needed
Returns:
Resolved concrete type (which should retain generic type parameters of input type, if any), if resolution succeeds; null if resolver does not know how to resolve type

materializeClass

protected Class<?> materializeClass(DeserializationConfig config,
                                    Class<?> cls)