List of usage examples for org.aspectj.apache.bcel.classfile InnerClass getInnerNameIndex
public final int getInnerNameIndex()
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 ""; }