Example usage for org.aspectj.apache.bcel.classfile InnerClass InnerClass

List of usage examples for org.aspectj.apache.bcel.classfile InnerClass InnerClass

Introduction

In this page you can find the example usage for org.aspectj.apache.bcel.classfile InnerClass InnerClass.

Prototype

public InnerClass(int inner_class_index, int outer_class_index, int inner_name_index, int inner_access_flags) 

Source Link

Usage

From source file:org.caesarj.mixer.intern.Tools.java

License:Open Source License

/**
 * @param outer//from  w  ww. ja v  a2  s .c om
 * @param outerName
 * @param innerName
 * @return
 */
public static InnerClass createInnerClass(JavaClass outerClass, String outerName, String innerName) {
    ConstantPoolGen cpg = new ConstantPoolGen(outerClass.getConstantPool());

    String ident = innerName.substring(outerName.length() + 1);

    int outerClassIndex = cpg.addClass(outerName), innerClassIndex = cpg.addClass(outerName + "$" + ident),
            nameIndex = cpg.addUtf8(ident);

    InnerClass result = new InnerClass(innerClassIndex, outerClassIndex, nameIndex, 0);//,Constants.ACC_PUBLIC);

    outerClass.setConstantPool(cpg.getFinalConstantPool());
    return result;
}