org.directwebremoting.convert
Class BasicObjectConverter

java.lang.Object
  extended by org.directwebremoting.convert.BasicObjectConverter
All Implemented Interfaces:
Converter, NamedConverter
Direct Known Subclasses:
BeanConverter, ObjectConverter

public abstract class BasicObjectConverter
extends java.lang.Object
implements NamedConverter

BasicObjectConverter is a parent to BeanConverter and ObjectConverter an provides support for include and exclude lists, and instanceTypes.

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

Constructor Summary
BasicObjectConverter()
           
 
Method Summary
 java.lang.Object convertInbound(java.lang.Class<?> paramType, InboundVariable data)
          Attempt to coerce the data from a string to an Object.
 OutboundVariable convertOutbound(java.lang.Object data, OutboundContext outctx)
          Return a javascript string that defines the variable named varName to have the contents of the converted object data.
 ConverterManager getConverterManager()
          Accessor for the current ConverterManager
 java.lang.Class<?> getInstanceType()
           
 java.lang.String getJavascript()
          Accessor for the javascript class name for mapped converted objects.
 java.lang.String getJavascriptSuperClass()
          Accessor for the javascript class name that will appear as superclass for mapped converted objects.
 void setConstructor(java.lang.String paramsString)
          Set the parameters to be used for constructor injection
 void setConverterManager(ConverterManager converterManager)
          If we are a compound converter that farms out part of the conversion to other converters then you farm the conversion out via a configuration.
 void setExclude(java.lang.String excludes)
          Set a list of properties excluded from conversion
 void setImplementation(java.lang.String name)
           
 void setInclude(java.lang.String includes)
          Set a list of properties included from conversion
 void setInstanceType(java.lang.Class<?> instanceType)
           
 void setJavascript(java.lang.String javascript)
          Accessor for the javascript class name for mapped converted objects.
 void setJavascriptSuperClass(java.lang.String javascriptSuperClass)
          Setter for the javascript class name that will appear as superclass for mapped converted objects.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.directwebremoting.extend.NamedConverter
getPropertyMapFromClass, getPropertyMapFromObject
 

Constructor Detail

BasicObjectConverter

public BasicObjectConverter()
Method Detail

convertInbound

public java.lang.Object convertInbound(java.lang.Class<?> paramType,
                                       InboundVariable data)
                                throws ConversionException
Description copied from interface: Converter
Attempt to coerce the data from a string to an Object. If anything goes wrong with inbound conversion then we generally throw an exception because we are converting data from the untrusted Internet so we take the assumption that anything wrong is someone hacking.

Specified by:
convertInbound in interface Converter
Parameters:
paramType - The type to convert to
data - The data to convert
Returns:
The converted data, or null if the conversion was not possible
Throws:
ConversionException - If the conversion failed for some reason

convertOutbound

public OutboundVariable convertOutbound(java.lang.Object data,
                                        OutboundContext outctx)
                                 throws ConversionException
Description copied from interface: Converter
Return a javascript string that defines the variable named varName to have the contents of the converted object data.

In contrast to convertInbound() failures in converting data on the way out should not stop processing, and we should carry on if we can. Failures are probably down to some misconfiguration so as much information about the error as can be safely generated to console logs is good. In other words if you need to loop in outbound conversion then it might be a good idea to catch issues inside the loop, log, and carry on.

Specified by:
convertOutbound in interface Converter
Parameters:
data - The data to convert
outctx - A collection of objects already converted and the results
Returns:
The OutboundVariable that represents the data to convert
Throws:
ConversionException - If the conversion failed for some reason

setExclude

public void setExclude(java.lang.String excludes)
Set a list of properties excluded from conversion

Parameters:
excludes - The space or comma separated list of properties to exclude

setInclude

public void setInclude(java.lang.String includes)
Set a list of properties included from conversion

Parameters:
includes - The space or comma separated list of properties to exclude

setImplementation

public void setImplementation(java.lang.String name)
                       throws java.lang.ClassNotFoundException
Parameters:
name - The class name to use as an implementation of the converted bean
Throws:
java.lang.ClassNotFoundException - If the given class can not be found

setConverterManager

public void setConverterManager(ConverterManager converterManager)
Description copied from interface: Converter
If we are a compound converter that farms out part of the conversion to other converters then you farm the conversion out via a configuration.

Specified by:
setConverterManager in interface Converter
Parameters:
converterManager - The configuration object

getConverterManager

public ConverterManager getConverterManager()
Accessor for the current ConverterManager

Returns:
the current ConverterManager

getJavascript

public java.lang.String getJavascript()
Description copied from interface: NamedConverter
Accessor for the javascript class name for mapped converted objects.

Specified by:
getJavascript in interface NamedConverter
Returns:
The Javascript classname

setJavascript

public void setJavascript(java.lang.String javascript)
Description copied from interface: NamedConverter
Accessor for the javascript class name for mapped converted objects.

Specified by:
setJavascript in interface NamedConverter
Parameters:
javascript - The Javascript classname

getJavascriptSuperClass

public java.lang.String getJavascriptSuperClass()
Description copied from interface: NamedConverter
Accessor for the javascript class name that will appear as superclass for mapped converted objects.

Specified by:
getJavascriptSuperClass in interface NamedConverter
Returns:
The Javascript classname

setJavascriptSuperClass

public void setJavascriptSuperClass(java.lang.String javascriptSuperClass)
Description copied from interface: NamedConverter
Setter for the javascript class name that will appear as superclass for mapped converted objects.

Specified by:
setJavascriptSuperClass in interface NamedConverter
Parameters:
javascriptSuperClass - The Javascript classname

getInstanceType

public java.lang.Class<?> getInstanceType()
Specified by:
getInstanceType in interface NamedConverter
Returns:
Returns the instanceType.

setInstanceType

public void setInstanceType(java.lang.Class<?> instanceType)
Specified by:
setInstanceType in interface NamedConverter
Parameters:
instanceType - The instanceType to set.

setConstructor

public void setConstructor(java.lang.String paramsString)
Set the parameters to be used for constructor injection

Parameters:
paramsString - a comma separated list of type/name pairs.

Copyright 2008