org.directwebremoting.convert
Class BeanConverter

java.lang.Object
  extended by org.directwebremoting.convert.BaseV20Converter
      extended by org.directwebremoting.convert.BasicObjectConverter
          extended by org.directwebremoting.convert.BeanConverter
All Implemented Interfaces:
Converter, NamedConverter
Direct Known Subclasses:
ExceptionConverter, H2BeanConverter, H3BeanConverter, MinimalistExceptionConverter

public class BeanConverter
extends BasicObjectConverter
implements Converter

Convert a Javascript associative array into a JavaBean

Author:
Joe Walker [joe at getahead dot ltd dot uk]

Field Summary
 
Fields inherited from class org.directwebremoting.convert.BasicObjectConverter
converterManager, exclusions, inclusions, instanceType, javascript
 
Constructor Summary
BeanConverter()
           
 
Method Summary
protected  TypeHintContext createTypeHintContext(InboundContext inctx, Property property)
          BasicObjectConverter.convertInbound(Class, InboundVariable, InboundContext) needs to create a TypeHintContext for the Property it is converting so that the type guessing system can do its work.
 java.util.Map getPropertyMapFromClass(java.lang.Class type, boolean readRequired, boolean writeRequired)
          Get a map of property names to implementations of Property.
 java.util.Map getPropertyMapFromObject(java.lang.Object example, boolean readRequired, boolean writeRequired)
          Get a map of property names to implementations of Property.
 
Methods inherited from class org.directwebremoting.convert.BasicObjectConverter
convertInbound, convertOutbound, extractInboundTokens, getConverterManager, getInstanceType, getJavascript, isAllowedByIncludeExcludeRules, setConverterManager, setExclude, setImplementation, setInclude, setInstanceType, setJavascript
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.directwebremoting.extend.Converter
convertInbound, convertOutbound, setConverterManager
 

Constructor Detail

BeanConverter

public BeanConverter()
Method Detail

getPropertyMapFromObject

public java.util.Map getPropertyMapFromObject(java.lang.Object example,
                                              boolean readRequired,
                                              boolean writeRequired)
                                       throws MarshallException
Description copied from interface: NamedConverter
Get a map of property names to implementations of Property.

HibernateBeanConverter (and maybe others) may want to provide alternate versions of bean.getClass(), and we may wish to fake or hide properties in some cases.

This implementation is preferred above the alternate: NamedConverter.getPropertyMapFromClass(Class, boolean, boolean) because it potentially retains important extra type information.

Specified by:
getPropertyMapFromObject in interface NamedConverter
Parameters:
example - The object to find bean info from
readRequired - The properties returned must be readable
writeRequired - The properties returned must be writeable
Returns:
An array of PropertyDescriptors describing the beans properties
Throws:
MarshallException - If the introspection fails
See Also:
NamedConverter.getPropertyMapFromClass(Class, boolean, boolean)

getPropertyMapFromClass

public java.util.Map getPropertyMapFromClass(java.lang.Class type,
                                             boolean readRequired,
                                             boolean writeRequired)
                                      throws MarshallException
Description copied from interface: NamedConverter
Get a map of property names to implementations of Property.

HibernateBeanConverter (and maybe others) may want to provide alternate versions of bean.getClass(), and we may wish to fake or hide properties in some cases.

If you have a real object to investigate then it is probably better to call NamedConverter.getPropertyMapFromObject(Object, boolean, boolean) because that version can take into accound extra runtime type info.

Specified by:
getPropertyMapFromClass in interface NamedConverter
Parameters:
type - The class to find bean info from
readRequired - The properties returned must be readable
writeRequired - The properties returned must be writeable
Returns:
An array of PropertyDescriptors describing the beans properties
Throws:
MarshallException - If the introspection fails
See Also:
NamedConverter.getPropertyMapFromObject(Object, boolean, boolean)

createTypeHintContext

protected TypeHintContext createTypeHintContext(InboundContext inctx,
                                                Property property)
Description copied from class: BasicObjectConverter
BasicObjectConverter.convertInbound(Class, InboundVariable, InboundContext) needs to create a TypeHintContext for the Property it is converting so that the type guessing system can do its work.

The method of generating a TypeHintContext is different for the BeanConverter and the ObjectConverter.

Specified by:
createTypeHintContext in class BasicObjectConverter
Parameters:
inctx - The parent context
property - The property being converted
Returns:
The new TypeHintContext