code: @Override
      public void visitClassContext(ClassContext classContext) {
          try {
              guiInterfaces = new HashSet<>();
              JavaClass cls = classContext.getJavaClass();
              JavaClass[] infs = cls.getAllInterfaces();
              for (JavaClass inf : infs) {
                  String name = inf.getClassName();
                  if ((name.startsWith("java.awt.") || name.startsWith("javax.swing.")) && name.endsWith("Listener")) {
                      guiInterfaces.add(inf);
                  }
              }
  
              if (!guiInterfaces.isEmpty()) {
                  listenerCode = new LinkedHashMap<>();
                  expensiveThisCalls = new HashSet<>();
                  super.visitClassContext(classContext);
              }
          } catch (ClassNotFoundException cnfe) {
              bugReporter.reportMissingClass(cnfe);
          } finally {
              guiInterfaces = null;
              listenerCode = null;
              expensiveThisCalls = null;
          }
      }
docs: overrides the visitor to reset look for gui interfaces
  
  @param classContext
  the context object for the currently parsed class