Example usage for org.aspectj.apache.bcel.classfile JavaClass setConstantPool

List of usage examples for org.aspectj.apache.bcel.classfile JavaClass setConstantPool

Introduction

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

Prototype

public void setConstantPool(ConstantPool constant_pool) 

Source Link

Usage

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

License:Open Source License

/**
 * @param outer//from w w  w  .j a va  2  s .c  o m
 * @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;
}