package com.dragome.web.enhancers.jsdelegate.serverside; import java.io.File; import java.util.HashMap; import java.util.Map; import javassist.ClassPool; import javassist.CtClass; public class InstrumentedClassPersister { Map<Class<?>, File> generatedFiles= new HashMap<Class<?>, File>(); private File baseDir; public InstrumentedClassPersister(File baseDir) { this.baseDir= baseDir; } public void persistClass(Class<?> interface1, String classname) { try { CtClass ctClass= ClassPool.getDefault().get(classname); File file= generatedFiles.get(interface1); ctClass.writeFile(getBaseDir().getAbsolutePath()); file= new File(getBaseDir().getAbsolutePath() + File.separatorChar + classname.replace('.', File.separatorChar) + ".class"); generatedFiles.put(interface1, file); } catch (Exception e) { throw new RuntimeException(e); } } public File getBaseDir() { return baseDir; } }