code: private void parseSubHierarchy(final Node parent, final AvroNode n) {
      final Node parsed;
      if (n.getPackageNode() != null) {
        parsed = new PackageNodeImpl(parent, getString(n.getName()), getString(n.getFullName()));
      } else if (n.getNamedParameterNode() != null) {
        final AvroNamedParameterNode np = n.getNamedParameterNode();
  
  
        parsed = new NamedParameterNodeImpl<>(parent, getString(n.getName()), getString(n.getFullName()),
                getString(np.getFullArgClassName()), getString(np.getSimpleArgClassName()), np.getIsSet(), np.getIsList(),
                getString(np.getDocumentation()), getString(np.getShortName()), getStringArray(np.getInstanceDefault()));
      } else if (n.getClassNode() != null) {
        final AvroClassNode cn = n.getClassNode();
        final List<ConstructorDef<?>> injectableConstructors = new ArrayList<>();
        final List<ConstructorDef<?>> allConstructors = new ArrayList<>();
  
        for (final AvroConstructorDef injectable : cn.getInjectableConstructors()) {
          final ConstructorDef<?> def = parseConstructorDef(injectable, true);
          injectableConstructors.add(def);
          allConstructors.add(def);
        }
        for (final AvroConstructorDef other : cn.getOtherConstructors()) {
          final ConstructorDef<?> def = parseConstructorDef(other, false);
          allConstructors.add(def);
        }
        @SuppressWarnings("unchecked")
        final ConstructorDef<Object>[] dummy = new ConstructorDef[0];
        parsed = new ClassNodeImpl<>(parent, getString(n.getName()), getString(n.getFullName()), cn.getIsUnit(),
                cn.getIsInjectionCandidate(), cn.getIsExternalConstructor(), injectableConstructors.toArray(dummy),
                allConstructors.toArray(dummy), getString(cn.getDefaultImplementation()));
      } else {
        throw new IllegalStateException("Bad avro node: got abstract node" + n);
      }
  
      for (final AvroNode child : n.getChildren()) {
        parseSubHierarchy(parsed, child);
      }
    }
docs: Register the classes recursively.