org.directwebremoting.extend
Interface ConverterManager

All Known Implementing Classes:
DefaultConverterManager

public interface ConverterManager

A class to manage the converter types and the instantiated class name matches.

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

Method Summary
 void addConverter(java.lang.String match, Converter converter)
          Add a new converter
 void addConverter(java.lang.String match, java.lang.String type, java.util.Map params)
          Add a new converter
 void addConverterType(java.lang.String id, java.lang.String className)
          Add a new converter type
 java.lang.Object convertInbound(java.lang.Class paramType, InboundVariable iv, InboundContext inctx, TypeHintContext incc)
          Convert an object from being a string into an object of some type.
 OutboundVariable convertOutbound(java.lang.Object object, OutboundContext converted)
          Convert an object into a Javavscript representation of the same.
 Converter getConverterByMatchString(java.lang.String match)
          In order to be able to create stub remote objects we need to know what they are so you can lookup match strings and retrieve the converter.
 java.util.Collection getConverterMatchStrings()
          In order to be able to create stub remote objects we need to know what they are so you can get a collection of all match strings.
 java.lang.Class getExtraTypeInfo(TypeHintContext thc)
          The extra type information that we have learnt about a method parameter.
 boolean isConvertable(java.lang.Class paramType)
          Check if we can coerce the given type
 void setConverters(java.util.Map converters)
          Sets the converters for this converter manager.
 void setExtraTypeInfo(TypeHintContext thc, java.lang.Class type)
          We don't know enough from a method signature like setUsers(Set s) to be able to cast the inbound data to a set of Users.
 

Method Detail

addConverterType

void addConverterType(java.lang.String id,
                      java.lang.String className)
Add a new converter type

Parameters:
id - The name of the converter type
className - The class to do the conversion

addConverter

void addConverter(java.lang.String match,
                  java.lang.String type,
                  java.util.Map params)
                  throws java.lang.IllegalArgumentException,
                         java.lang.InstantiationException,
                         java.lang.IllegalAccessException
Add a new converter

Parameters:
match - The class name(s) to match
type - The name of the converter type
params - The extra parameters to allow the creator to configure itself
Throws:
java.lang.InstantiationException - If reflection based creation fails
java.lang.IllegalAccessException - If reflection based creation fails
java.lang.IllegalArgumentException - If we have a duplicate name

addConverter

void addConverter(java.lang.String match,
                  Converter converter)
                  throws java.lang.IllegalArgumentException
Add a new converter

Parameters:
match - The class name(s) to match
converter - The converter to add
Throws:
java.lang.IllegalArgumentException - If we have a duplicate name

getConverterMatchStrings

java.util.Collection getConverterMatchStrings()
In order to be able to create stub remote objects we need to know what they are so you can get a collection of all match strings.

Returns:
A Collection of all the converter match strings
See Also:
getConverterByMatchString(String)

getConverterByMatchString

Converter getConverterByMatchString(java.lang.String match)
In order to be able to create stub remote objects we need to know what they are so you can lookup match strings and retrieve the converter.

Parameters:
match - The match string to lookup
Returns:
The matching converter
See Also:
getConverterMatchStrings()

isConvertable

boolean isConvertable(java.lang.Class paramType)
Check if we can coerce the given type

Parameters:
paramType - The type to check
Returns:
true iff paramType is coercable

convertInbound

java.lang.Object convertInbound(java.lang.Class paramType,
                                InboundVariable iv,
                                InboundContext inctx,
                                TypeHintContext incc)
                                throws MarshallException
Convert an object from being a string into an object of some type. Designed for use with converters that have a working map passed to them

Parameters:
paramType - The type that you want the object to be
iv - The string version of the object
inctx - The map of data that we are working on
incc - The context of this type conversion
Returns:
The coerced object or null if the object could not be coerced
Throws:
MarshallException - If the conversion failed for some reason

convertOutbound

OutboundVariable convertOutbound(java.lang.Object object,
                                 OutboundContext converted)
                                 throws MarshallException
Convert an object into a Javavscript representation of the same. This method is for use by converters wishing to recurse into some object.

Parameters:
object - The object to convert
converted - The list of converted objects so far
Returns:
A Javascript string version of the object
Throws:
MarshallException - If the conversion failed for some reason

setExtraTypeInfo

void setExtraTypeInfo(TypeHintContext thc,
                      java.lang.Class type)
We don't know enough from a method signature like setUsers(Set s) to be able to cast the inbound data to a set of Users. This method enables us to specify this extra information.

Parameters:
thc - The context to find any extra type information from
type - The type of the specified parameter.

getExtraTypeInfo

java.lang.Class getExtraTypeInfo(TypeHintContext thc)
The extra type information that we have learnt about a method parameter. This method will return null if there is nothing extra to know

Parameters:
thc - The context to find any extra type information from
Returns:
A type to use to fill out the generic type

setConverters

void setConverters(java.util.Map converters)
Sets the converters for this converter manager.

Parameters:
converters - the map of match pattern and their converter instances