net.sf.gilead.core.beanlib.transformer
Class CustomTransformersFactory

java.lang.Object
  extended by net.sf.gilead.core.beanlib.transformer.CustomTransformersFactory

public class CustomTransformersFactory
extends java.lang.Object

Factory for gilead custom transformers

Author:
Alexandre Pretyman, Bruno Marchesson

Method Summary
 void addCustomBeanTransformer(java.lang.Class transformerClass)
          Add a custom bean transformer
 CustomBeanTransformerSpi createUnionCustomBeanTransformer(BeanTransformerSpi beanTransformer)
          Create a union transformer if needed
protected  java.lang.reflect.Constructor<CustomBeanTransformerSpi> getConstructorFor(java.lang.Class<CustomBeanTransformerSpi> clazz)
          Get constructor for the argument class
static CustomTransformersFactory getInstance()
           
protected  CustomBeanTransformerSpi instantiate(java.lang.reflect.Constructor<CustomBeanTransformerSpi> constructor, BeanTransformerSpi beanTransformer)
          Create a new transformer instance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static CustomTransformersFactory getInstance()
Returns:
the unique instance of the factory

addCustomBeanTransformer

public void addCustomBeanTransformer(java.lang.Class transformerClass)
Add a custom bean transformer


createUnionCustomBeanTransformer

public CustomBeanTransformerSpi createUnionCustomBeanTransformer(BeanTransformerSpi beanTransformer)
Create a union transformer if needed

Parameters:
beanTransformer - the input bean transformer
Returns:
the beanlib CustomBeanTransformer.

getConstructorFor

protected java.lang.reflect.Constructor<CustomBeanTransformerSpi> getConstructorFor(java.lang.Class<CustomBeanTransformerSpi> clazz)
Get constructor for the argument class

Parameters:
clazz - the custom bean transformer class
Returns:
the constructor that take a BeanTransformerSpi as argument from the class

instantiate

protected CustomBeanTransformerSpi instantiate(java.lang.reflect.Constructor<CustomBeanTransformerSpi> constructor,
                                               BeanTransformerSpi beanTransformer)
Create a new transformer instance

Parameters:
constructor - the constructor
beanTransformer - the bean transformer needed argument
Returns:
the CustomBeanTransformer