code: private void parseClassDescriptions() throws Exception {
          int refCount = acceptInteger(input.readByte());
          if (refCount < 0) {
              throw new IllegalArgumentException("Invalid binary data: Expected count of references, but was: " + refCount);
          }
          refs = new Object[refCount];
  
          int classMapSize = acceptMap(input.readByte());
          classes = new ClassInfo[classMapSize]; // Guaranteed non-negative by acceptMap()
          classMap = new HashMap<>(classMapSize);
  
          for (int position = 0; position < classMapSize; position++) {
              ClassInfo classInfo = parseClassInfo();
              classes[position] = classInfo;
              classMap.put(classInfo.type, classInfo);
          }
      }
docs: parses the references