package javassist.build;

import javassist.CtClass;

/**
 * A common interface to define class transformers, java (or groovy) 
 * entities that can manipulate classes during build processes, 
 * right after javac compiled them.
 * @author SNI
 */
public interface IClassTransformer {
	void applyTransformations(CtClass ctClass) throws JavassistBuildException;
	boolean shouldTransform(CtClass ctClass) throws JavassistBuildException;
}

@@ -281,83 +281,1192 @@
 r %7B%0A
-%09void applyTransformations(CtClass ctClass) throws JavassistBuildException;
+    /**%0A     * %3Cp%3EConcrete implementations must implement all transformations on this method.%0A     * You can use Javassist API to add/remove/replace methods, attributes and more.%0A     * Only classes approved by %7B@link #shouldTransform(CtClass)%7D are considered.%3C/p%3E%0A     *%0A     * @param classToTransform The class to transform.%0A     * @see #filter(CtClass)%0A     * @throws JavassistBuildException if any error occur during the transformation.%0A     */%0A%09void applyTransformations(CtClass ctClass) throws JavassistBuildException;%0A%09%0A    /**%0A     * %3Cp%3ETest if the given class is suitable for applying transformations or not.%3C/p%3E%0A     * %3Cp%3EFor example, if the class is a specific type:%3C/p%3E%0A     * %3Ccode%3E%3Cpre%3E%0A     * CtClass myInterface = ClassPool.getDefault().get(MyInterface.class.getName());%0A     * return candidateClass.subtypeOf(myInterface);%0A     * %3C/pre%3E%3C/code%3E%0A     * Override this method to boost class transformations and discard classes you don't want%0A     * to transform.%0A     *%0A     * @param candidateClass%0A     * @return %7B@code true%7D if the Class should be transformed; %7B@code false%7D otherwise.%0A     * @throws JavassistBuildException if any error occur during filtering.%0A     */
 %0A%09bo

Add javadoic