public class DefaultObjectWrapper extends BeansWrapper
ObjectWrapper interface. Note that instances of this class generally should
be made by DefaultObjectWrapperBuilder and its overloads, not with its constructor.
This class is only thread-safe after you have finished calling its setter methods, and then safely published
it (see JSR 133 and related literature). When used as part of Configuration, of course it's enough if that
was safely published and then left unmodified.
BeansWrapper.MethodAppearanceDecision, BeansWrapper.MethodAppearanceDecisionInputEXPOSE_ALL, EXPOSE_NOTHING, EXPOSE_PROPERTIES_ONLY, EXPOSE_SAFEBEANS_WRAPPER, DEFAULT_WRAPPER, SIMPLE_WRAPPER| Modifier | Constructor and Description |
|---|---|
|
DefaultObjectWrapper()
Deprecated.
Use
DefaultObjectWrapperBuilder, or in rare cases,
DefaultObjectWrapper(Version) instead. |
protected |
DefaultObjectWrapper(BeansWrapperConfiguration dowCfg,
boolean readOnly)
|
|
DefaultObjectWrapper(Version incompatibleImprovements)
Use
DefaultObjectWrapperBuilder instead if possible. |
| Modifier and Type | Method and Description |
|---|---|
protected Object |
convertArray(Object arr)
Converts an array to a java.util.List
|
protected TemplateModel |
handleUnknownType(Object obj)
Called if an unknown type is passed in.
|
TemplateModel |
wrap(Object obj)
Wraps the object with a template model that is most specific for the object's
class.
|
TemplateModel |
wrapDomNode(Object obj) |
checkModifiable, clearClassIntrospecitonCache, coerceBigDecimal, coerceBigDecimals, coerceBigDecimals, finetuneMethodAppearance, getDefaultDateType, getDefaultInstance, getEnumModels, getExposureLevel, getIncompatibleImprovements, getInstance, getMethodAppearanceFineTuner, getModelFactory, getOuterIdentity, getStaticModels, getUseCache, isClassIntrospectionCacheRestricted, isExposeFields, isSimpleMapWrapper, isStrict, isWriteProtected, newInstance, normalizeIncompatibleImprovementsVersion, removeFromClassIntrospectionCache, setDefaultDateType, setExposeFields, setExposureLevel, setMethodAppearanceFineTuner, setMethodsShadowItems, setNullModel, setOuterIdentity, setSimpleMapWrapper, setStrict, setUseCache, toString, unwrap, unwrap, writeProtectpublic DefaultObjectWrapper()
DefaultObjectWrapperBuilder, or in rare cases,
DefaultObjectWrapper(Version) instead.Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS.public DefaultObjectWrapper(Version incompatibleImprovements)
DefaultObjectWrapperBuilder instead if possible.
Instances created with this constructor won't share the class introspection caches with other instances.
See BeansWrapper.BeansWrapper(Version) (the superclass constructor) for more details.incompatibleImprovements - As of yet, the same as in BeansWrapper.BeansWrapper(Version).protected DefaultObjectWrapper(BeansWrapperConfiguration dowCfg, boolean readOnly)
public TemplateModel wrap(Object obj) throws TemplateModelException
BeansWrappernull model,NumberModel for it,DateModel for it,TemplateBooleanModel.TRUE or
TemplateBooleanModel.FALSEArrayModel for it
MapModel for it
CollectionModel for it
IteratorModel for it
EnumerationModel for it
StringModel for it
BeanModel for it.
wrap in interface ObjectWrapperwrap in class BeansWrapperobj - The object to wrap into a TemplateModel. If it already implements TemplateModel,
it should just return the object as is.TemplateModel wrapper of the object passed in. To support un-wrapping, you may consider the
return value to implement WrapperTemplateModel and AdapterTemplateModel.
The default expectation is that the TemplateModel isn't less thread safe than the wrapped object.
If the ObjectWrapper returns less thread safe objects, that should be clearly documented, as it
restricts how it can be used, like, then it can't be used to wrap "shared variables"
(Configuration.setSharedVaribles(Map)).TemplateModelExceptionprotected TemplateModel handleUnknownType(Object obj) throws TemplateModelException
TemplateModelExceptionpublic TemplateModel wrapDomNode(Object obj)