org.iternine.jeppetto.enhance
Class Enhancer<T>

java.lang.Object
  extended by org.iternine.jeppetto.enhance.Enhancer<T>
Direct Known Subclasses:
ChainingEnhancer, NoOpEnhancer, VelocityEnhancer

public abstract class Enhancer<T>
extends Object


Constructor Summary
protected Enhancer(Class<T> baseClass)
           
 
Method Summary
 T enhance(T t)
          Enhances the given object.
protected abstract  Class<? extends T> enhanceClass(Class<T> baseClass)
           
 Class<T> getBaseClass()
           
 Class<? extends T> getEnhancedClass()
           
abstract  boolean needsEnhancement(Object object)
           
 T newInstance()
          Creates a new object that is enhanced.
 void validateClassIsEnhanceable(Class<T> baseClass)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Enhancer

protected Enhancer(Class<T> baseClass)
Method Detail

needsEnhancement

public abstract boolean needsEnhancement(Object object)

enhanceClass

protected abstract Class<? extends T> enhanceClass(Class<T> baseClass)

validateClassIsEnhanceable

public void validateClassIsEnhanceable(Class<T> baseClass)

getBaseClass

public final Class<T> getBaseClass()

getEnhancedClass

public Class<? extends T> getEnhancedClass()

newInstance

public T newInstance()
Creates a new object that is enhanced.

Returns:
new object

enhance

public T enhance(T t)
Enhances the given object.

Parameters:
t - object to enhance
Returns:
enhanced object


Copyright © 2012. All Rights Reserved.