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

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

Introduction

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

Prototype

public final int getInnerNameIndex() 

Source Link

Usage

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

License:Open Source License

public void visitInnerClasses(InnerClasses obj) {
    ConstantPool cp = obj.getConstantPool();
    InnerClass[] innerClasses = obj.getInnerClasses();
    for (int i = 0; i < innerClasses.length; i++) {
        InnerClass inner = innerClasses[i];
        String innerName = Tools.loadName(inner.getInnerNameIndex(), cp),
                className = Tools.loadClassName(inner.getInnerClassIndex(), cp);

        if (innerName.equals("")) {
            String shortName = className.split("\\$")[1];
            try {
                Integer.valueOf(shortName);
                anonymousInners.add(className);
            } catch (NumberFormatException e) {
            }//from  w w  w. j  a  v a  2  s .  co m
        }
    }
    // super.visitInnerClasses(obj);
}

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.
 *///ww w  .  j ava2  s.  c o  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 "";
}