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

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

Introduction

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

Prototype

public final int getOuterClassIndex() 

Source Link

Usage

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

License:Open Source License

/**
 * Returns the outer class of the class <code>forName</code> from the 
 * Innerclass list of <code>clazz</code>.
 * Returns "" if no matching entry is found.
 *//*from  w ww  .j a v a2  s . co  m*/
public static String getOuterClass(JavaClass clazz, String forName) {
    String ident = new JavaQualifiedName(forName).getIdent();

    if (forName.contains("$")) {
        int idx = forName.lastIndexOf('$');
        return forName.substring(0, idx);
    }

    InnerClass[] inners = getInnerClasses(clazz);
    for (int i = 0; i < inners.length; i++) {
        InnerClass inner = inners[i];
        String innerName = Tools.loadName(inner.getInnerNameIndex(), clazz.getConstantPool());
        if (innerName.equals(ident)) {
            return Tools.loadClassName(inner.getOuterClassIndex(), clazz.getConstantPool());
        }
    }
    return "";
}