net.sf.ezmorph
Class MorpherRegistry

java.lang.Object
  extended by net.sf.ezmorph.MorpherRegistry
All Implemented Interfaces:
Serializable

public class MorpherRegistry
extends Object
implements Serializable

Convenient class that manages Morphers.
A MorpherRehistry manages a group of Morphers. A Morpher will always be associated with a target class, it is possible to have several Morphers registered for a target class, if this is the case, the first Morpher will be used when performing a conversion and no specific Morpher is selected in advance.
MorphUtils may be used to register standard Morphers for primitive types and primitive wrappers, as well as arrays of those types.

Author:
Andres Almiray
See Also:
Serialized Form

Constructor Summary
MorpherRegistry()
           
 
Method Summary
 void clear()
          Deregisters all morphers.
 void clear(Class type)
          Deregister all Morphers of a type.
 void deregisterMorpher(Morpher morpher)
          Deregister the specified Morpher.
The registry will remove the target Class from the morphers Map if it has no other registered morphers.
 Morpher getMorpherFor(Class clazz)
          Returns a morpher for clazz.
If several morphers are found for that class, it returns the first.
 Morpher[] getMorphersFor(Class clazz)
          Returns all morphers for clazz.
If no Morphers are found it will return an array containing the IdentityObjectMorpher.
 Object morph(Class target, Object value)
          Morphs and object to the specified target class.
This method uses reflection to invoke primitive Morphers and Morphers that do not implement ObjectMorpher.
 void registerMorpher(Morpher morpher)
          Register a Morpher for a target Class.
The target class is the class this Morpher morphs to.
 void registerMorpher(Morpher morpher, boolean override)
          Register a Morpher for a target Class.
The target class is the class this Morpher morphs to.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MorpherRegistry

public MorpherRegistry()
Method Detail

clear

public void clear()
Deregisters all morphers.


clear

public void clear(Class type)
Deregister all Morphers of a type.

Parameters:
class - the target type the Morphers morph to

deregisterMorpher

public void deregisterMorpher(Morpher morpher)
Deregister the specified Morpher.
The registry will remove the target Class from the morphers Map if it has no other registered morphers.

Parameters:
morpher - the target Morpher to remove

getMorpherFor

public Morpher getMorpherFor(Class clazz)
Returns a morpher for clazz.
If several morphers are found for that class, it returns the first. If no Morpher is found it will return the IdentityObjectMorpher.

Parameters:
clazz - the target class for which a Morpher may be associated

getMorphersFor

public Morpher[] getMorphersFor(Class clazz)
Returns all morphers for clazz.
If no Morphers are found it will return an array containing the IdentityObjectMorpher.

Parameters:
clazz - the target class for which a Morpher or Morphers may be associated

morph

public Object morph(Class target,
                    Object value)
Morphs and object to the specified target class.
This method uses reflection to invoke primitive Morphers and Morphers that do not implement ObjectMorpher.

Parameters:
target - the target class to morph to
value - the value to morph
Returns:
an instance of the target class if a suitable Morpher was found
Throws:
MorphException - if an error occurs during the conversion

registerMorpher

public void registerMorpher(Morpher morpher)
Register a Morpher for a target Class.
The target class is the class this Morpher morphs to. If there are another morphers registered to that class, it will be appended to a List.

Parameters:
morpher - a Morpher to register. The method morphsTo() is used to associate the Morpher to a target Class

registerMorpher

public void registerMorpher(Morpher morpher,
                            boolean override)
Register a Morpher for a target Class.
The target class is the class this Morpher morphs to. If there are another morphers registered to that class, it will be appended to a List.

Parameters:
morpher - a Morpher to register. The method morphsTo() is used to associate the Morpher to a target Class
override - if registering teh Morpher should override all previously registered morphers for the target type


Copyright © 2006-2008. All Rights Reserved.