package coloredlightscore.src.asm.transformer.core; import cpw.mods.fml.common.FMLLog; import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.MethodNode; public abstract class MethodTransformer extends SelectiveTransformer { @Override protected boolean transform(ClassNode clazz, String className) { // 03-06-2014 heaton84: Made so that it will transform more than one method boolean result = preTransformClass(clazz); for (MethodNode method : clazz.methods) { if (transforms(clazz, method)) { FMLLog.info("Transforming method " + method.name); result |= transform(clazz, method); } } result |= postTransformClass(clazz); return result; } protected abstract boolean transforms(ClassNode clazz, MethodNode method); protected abstract boolean transform(ClassNode clazz, MethodNode method); protected boolean preTransformClass(ClassNode clazz) { return false; } protected boolean postTransformClass(ClassNode clazz) { return false; } }