code: public boolean differs(ClassInfo oldInfo, ClassInfo newInfo) {
          if (Tools.isClassAccessChange(oldInfo.getAccess(), newInfo.getAccess()))
              return true;
          // Yes classes can have a null supername, e.g. java.lang.Object !
          if(oldInfo.getSupername() == null) {
              if(newInfo.getSupername() != null) {
                  return true;
              }
          } else if (!oldInfo.getSupername().equals(newInfo.getSupername())) {
              return true;
          }
          final Set<String> oldInterfaces
              = new HashSet(Arrays.asList(oldInfo.getInterfaces()));
          final Set<String> newInterfaces
              = new HashSet(Arrays.asList(newInfo.getInterfaces()));
          if (!oldInterfaces.equals(newInterfaces))
              return true;
          return false;
      }
docs: Check if there is a change between two versions of a class.
  Returns true if the access flags differ, or if the superclass differs
  or if the implemented interfaces differ.
  
  @param oldInfo Info about the old version of the class.
  @param newInfo Info about the new version of the class.
  @return True if the classes differ, false otherwise.