Example usage for org.objectweb.asm ModuleVisitor ModuleVisitor

List of usage examples for org.objectweb.asm ModuleVisitor ModuleVisitor

Introduction

In this page you can find the example usage for org.objectweb.asm ModuleVisitor ModuleVisitor.

Prototype

public ModuleVisitor(final int api, final ModuleVisitor moduleVisitor) 

Source Link

Document

Constructs a new ModuleVisitor .

Usage

From source file:co.paralleluniverse.fibers.instrument.ModuleFilterTask.java

License:Open Source License

private void filter(File file) {
    try {/*w w w .jav  a2 s .  c o  m*/
        ClassWriter cw = null;
        try (FileInputStream fis = new FileInputStream(file)) {
            ClassReader cr = new ClassReader(fis);
            cw = new ClassWriter(cr, 0);
            cr.accept(new ClassVisitor(Opcodes.ASM7, cw) {
                @Override
                public ModuleVisitor visitModule(String name, int access, String version) {
                    return new ModuleVisitor(Opcodes.ASM7, super.visitModule(name, access, version)) {
                        @Override
                        public void visitRequire(String module, int access, String version) {
                            if (!module.contains(mod)) {
                                super.visitRequire(module, access, version);
                            }
                        }
                    };
                }
            }, 0);
        }

        try (FileOutputStream fos = new FileOutputStream(file)) {
            fos.write(cw.toByteArray());
        }
    } catch (IOException ex) {
        throw new BuildException("Filterin module-info file " + file, ex);
    }
}