in src/org/jetbrains/ether/dependencyView/ClassRepr.java [60:131]
public Diff difference(final Proto past) {
final ClassRepr pastClass = (ClassRepr) past;
final Difference diff = super.difference(past);
int base = diff.base();
if (!superClass.equals(pastClass.superClass)) {
base |= Difference.SUPERCLASS;
}
final int d = base;
return new Diff() {
@Override
public boolean extendsAdded() {
final String pastSuperName = ((TypeRepr.ClassType) ((ClassRepr) past).superClass).className.value;
return (d & Difference.SUPERCLASS) > 0 && pastSuperName.equals("java/lang/Object");
}
@Override
public boolean packageLocalOn() {
return diff.packageLocalOn();
}
@Override
public int addedModifiers() {
return diff.addedModifiers();
}
@Override
public int removedModifiers() {
return diff.removedModifiers();
}
@Override
public Difference.Specifier<TypeRepr.AbstractType> interfaces() {
return Difference.make(pastClass.interfaces, interfaces);
}
@Override
public Difference.Specifier<TypeRepr.AbstractType> nestedClasses() {
return Difference.make(pastClass.nestedClasses, nestedClasses);
}
@Override
public Difference.Specifier<FieldRepr> fields() {
return Difference.make(pastClass.fields, fields);
}
@Override
public Difference.Specifier<MethodRepr> methods() {
return Difference.make(pastClass.methods, methods);
}
@Override
public Specifier<ElementType> targets() {
return Difference.make(pastClass.targets, targets);
}
@Override
public boolean retentionChanged() {
return !((policy == null && pastClass.policy == RetentionPolicy.CLASS) ||
(policy == RetentionPolicy.CLASS && pastClass.policy == null) ||
(policy == pastClass.policy)
);
}
@Override
public int base() {
return d;
}
};
}