code: private ClassInfo classInfoForUnnamed(ClassTemplateSpec enclosingClass, String name, DataSchema schema)
    {
      assert !(schema instanceof NamedDataSchema);
      assert !(schema instanceof PrimitiveDataSchema);
  
      final ClassInfo classInfo = classNameForUnnamedTraverse(enclosingClass, name, schema);
      final String className = classInfo.fullName();
  
      final DataSchema schemaFromClassName = _classNameToSchemaMap.get(className);
      if (schemaFromClassName == null)
      {
        final ClassTemplateSpec classTemplateSpec = createFromDataSchema(schema);
  
        if (enclosingClass != null && classInfo.namespace.equals(enclosingClass.getFullName()))
        {
          classTemplateSpec.setEnclosingClass(enclosingClass);
          classTemplateSpec.setClassName(classInfo.name);
          classTemplateSpec.setModifiers(ModifierSpec.PUBLIC, ModifierSpec.STATIC, ModifierSpec.FINAL);
        }
        else
        {
          classTemplateSpec.setNamespace(classInfo.namespace);
          classTemplateSpec.setClassName(classInfo.name);
          classTemplateSpec.setModifiers(ModifierSpec.PUBLIC);
        }
        classInfo.definedClass = classTemplateSpec;
      }
      else
      {
        checkForClassNameConflict(className, schema);
        classInfo.existingClass = _schemaToClassMap.get(schemaFromClassName);
      }
  
      return classInfo;
    }
docs: /*
  Determine name and class for unnamed types.