public Pair<ClassRepr, Set<UsageRepr.Usage>> getResult() { final ClassRepr repr = myTakeIntoAccount ? new ClassRepr( myContext, myAccess, myFileName, myName, myContext.get(mySignature), myContext.get(mySuperClass), myInterfaces, myNestedClasses, myFields, myMethods, myTargets, myRetentionPolicy, myContext.get(myOuterClassName.get()), myLocalClassFlag.get(), myUsages) : null; if (repr != null) { repr.updateClassUsages(myContext, myUsages); } return new Pair<ClassRepr, Set<UsageRepr.Usage>>(repr, myUsages); }
@Override public void visitOuterClass(final String owner, final String name, final String desc) { myOuterClassName.set(owner); if (name != null) { myLocalClassFlag.set(true); } }
@Override public void visit(int version, int a, String n, String sig, String s, String[] i) { myTakeIntoAccount = notPrivate(a); myAccess = a; myName = myContext.get(n); mySignature = sig; mySuperClass = s; myInterfaces = i; myClassNameHolder.set(n); if (mySuperClass != null) { final int superclassName = myContext.get(mySuperClass); myUsages.add(UsageRepr.createClassUsage(myContext, superclassName)); myUsages.add(UsageRepr.createClassExtendsUsage(myContext, superclassName)); } if (myInterfaces != null) { for (String it : myInterfaces) { final int interfaceName = myContext.get(it); myUsages.add(UsageRepr.createClassUsage(myContext, interfaceName)); myUsages.add(UsageRepr.createClassExtendsUsage(myContext, interfaceName)); } } processSignature(sig); }
{ myLocalClassFlag.set(false); }