package eu.bibl.cfide.engine.launch.dump; import java.io.IOException; import java.util.jar.JarEntry; import java.util.jar.JarOutputStream; import org.objectweb.asm.ClassWriter; import org.objectweb.asm.tree.ClassNode; import eu.bibl.banalysis.storage.classes.ClassContainer; import eu.bibl.bio.jfile.out.NonMetaJarDumper; public class CustomJarDumper extends NonMetaJarDumper { protected ClassLoader cl; public CustomJarDumper(ClassContainer contents, ClassLoader cl) { super(contents); this.cl = cl; } @Override public int dumpClass(JarOutputStream out, String name, ClassNode cn) throws IOException { JarEntry entry = new JarEntry(cn.name + ".class"); out.putNextEntry(entry); ClassWriter writer = new CustomClassWriter(cl, ClassWriter.COMPUTE_MAXS); cn.accept(writer); out.write(writer.toByteArray()); return 1; } }