test_class.file: infra/docattrs/src/test/java/org/carrot2/infra/docattrs/TestClassInfoCollector.java
test_class.identifier: TestClassInfoCollector
test_case.body: @Test
    public void testNumericAttr() {
      @SuppressWarnings("unused")
      class Clazz extends AttrComposite {
        AttrInteger attrInteger =
            attributes.register("attrInteger", AttrInteger.builder().defaultValue(42));
        AttrDouble attrDouble =
            attributes.register("attrDouble", AttrDouble.builder().defaultValue(42.5));
      }
  
      ClassInfoCollector collector = new ClassInfoCollector(JvmNameMapper.INSTANCE);
      ClassInfo classInfo = collector.collect(new Clazz());
      Assertions.assertThat(classInfo.attributes)
          .hasEntrySatisfying("attrInteger", info -> Assertions.assertThat(info.value).isEqualTo(42))
          .hasEntrySatisfying(
              "attrDouble", info -> Assertions.assertThat(info.value).isEqualTo(42.5));
    }
test_case.class_method_signature: TestClassInfoCollector.testNumericAttr()
test_case.full_signature: @Test public void testNumericAttr()
test_case.identifier: testNumericAttr
test_case.invocations: register defaultValue builder register defaultValue builder collect hasEntrySatisfying hasEntrySatisfying assertThat isEqualTo assertThat isEqualTo assertThat
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testNumericAttr()
focal_class.declarator: aliasMapper
focal_class.modifier: private final
focal_class.original_string: private final ClassNameMapper aliasMapper;
focal_class.type: ClassNameMapper
focal_class.var_name: aliasMapper
focal_class.declarator: collected = new HashMap<>()
focal_class.modifier: private
focal_class.original_string: private HashMap<Class<? extends AcceptingVisitor>, ClassInfo> collected = new HashMap<>();
focal_class.type: HashMap<Class<? extends AcceptingVisitor>, ClassInfo>
focal_class.var_name: collected
focal_class.file: infra/docattrs/src/main/java/org/carrot2/infra/docattrs/ClassInfoCollector.java
focal_class.identifier: ClassInfoCollector
focal_class.class_method_signature: ClassInfoCollector.ClassInfoCollector(ClassNameMapper aliasMapper)
focal_class.full_signature: public  ClassInfoCollector(ClassNameMapper aliasMapper)
focal_class.identifier: ClassInfoCollector
focal_class.modifiers: public
focal_class.parameters: (ClassNameMapper aliasMapper)
focal_class.signature:  ClassInfoCollector(ClassNameMapper aliasMapper)
focal_class.class_method_signature: ClassInfoCollector.collect(AcceptingVisitor c)
focal_class.full_signature: public ClassInfo collect(AcceptingVisitor c)
focal_class.identifier: collect
focal_class.modifiers: public
focal_class.parameters: (AcceptingVisitor c)
focal_class.return: ClassInfo
focal_class.signature: ClassInfo collect(AcceptingVisitor c)
focal_class.class_method_signature: ClassInfoCollector.getQualifiedName(Class<?> clazz)
focal_class.full_signature: public static String getQualifiedName(Class<?> clazz)
focal_class.identifier: getQualifiedName
focal_class.modifiers: public static
focal_class.parameters: (Class<?> clazz)
focal_class.return: String
focal_class.signature: String getQualifiedName(Class<?> clazz)
focal_method.body: public ClassInfo collect(AcceptingVisitor c) {
      return collected.computeIfAbsent(
          c.getClass(),
          (key) -> {
            final ClassInfo ci = new ClassInfo();
            ci.clazz = c.getClass();
            ci.name = aliasMapper.toName(c);
            ci.type = getQualifiedName(c.getClass());
  
            c.accept(new AttrInfoCollector(ci.attributes, aliasMapper));
            return ci;
          });
    }
focal_method.class_method_signature: ClassInfoCollector.collect(AcceptingVisitor c)
focal_method.full_signature: public ClassInfo collect(AcceptingVisitor c)
focal_method.identifier: collect
focal_method.invocations: computeIfAbsent getClass getClass toName getQualifiedName getClass accept
focal_method.modifiers: public
focal_method.parameters: (AcceptingVisitor c)
focal_method.return: ClassInfo
focal_method.signature: ClassInfo collect(AcceptingVisitor c)