code: @Override
      public void visitClassContext(ClassContext classContext) {
          if ((collectionClass == null) || (iteratorClass == null)) {
              return;
          }
  
          try {
              collectionGroups = new ArrayList<>();
              groupToIterator = new HashMap<>();
              loops = new HashMap<>(10);
              super.visitClassContext(classContext);
          } finally {
              collectionGroups = null;
              groupToIterator = null;
              loops = null;
              endOfScopes = null;
          }
      }
docs: implements the visitor to setup the opcode stack, collectionGroups, groupToIterator and loops
  
  @param classContext
  the context object of the currently parsed class