@Override
public void report() {
if (false) {
Subtypes2 subtypes2 = AnalysisContext.currentAnalysisContext().getSubtypes2();
for (Map.Entry<ClassDescriptor, Set<ClassDescriptor>> e : classesWithGetClassBasedEquals.entrySet()) {
ClassAnnotation parentClass = ClassAnnotation.fromClassDescriptor(e.getKey());
XClass xParent = AnalysisContext.currentXFactory().getXClass(e.getKey());
if (xParent == null) {
continue;
}
EqualsKindSummary.KindOfEquals parentKind = equalsKindSummary.get(parentClass);
for (ClassDescriptor child : e.getValue()) {
if (child.equals(e.getKey())) {
continue;
}
XClass xChild = AnalysisContext.currentXFactory().getXClass(child);
if (xChild == null) {
continue;
}
ClassAnnotation childClass = ClassAnnotation.fromClassDescriptor(child);
EqualsKindSummary.KindOfEquals childKind = equalsKindSummary.get(childClass);
int fieldsOfInterest = 0;
for (XField f : xChild.getXFields()) {
if (!f.isStatic() && !f.isSynthetic()) {
fieldsOfInterest++;
}
}
int grandchildren = -1;
try {
grandchildren = subtypes2.getSubtypes(child).size();
} catch (ClassNotFoundException e1) {
assert true;
}
System.out.println(parentKind + " " + childKind + " " + parentClass + " " + childClass + " "
+ fieldsOfInterest + " " + grandchildren);
try {
if (grandchildren >= 2) {
for (ClassDescriptor g : subtypes2.getSubtypes(child)) {
if (!g.equals(child)) {
System.out.println(" " + g);
}
}
}