protected void processTopLevelEnumTypes(final List<ConfigurationMetadataProperty> properties) throws Exception {
        for (val property : properties) {
            var typePath = ConfigurationMetadataClassSourceLocator.buildTypeSourcePath(projectDirectory.getCanonicalPath(), property.getType());
            var typeFile = new File(typePath);
            if (!typeFile.exists() && !property.getType().contains(".")) {
                val clazz = ConfigurationMetadataClassSourceLocator.findClassBySimpleNameInPackage(property.getType(), "org.apereo.cas");
                if (clazz.isPresent()) {
                    typePath = ConfigurationMetadataClassSourceLocator.buildTypeSourcePath(projectDirectory.getCanonicalPath(), clazz.get().getName());
                    typeFile = new File(typePath);
                }
            }

            if (typeFile.exists()) {
                val cu = StaticJavaParser.parse(new File(typePath));
                for (val type : cu.getTypes()) {
                    if (type.isEnumDeclaration()) {
                        val enumMem = type.asEnumDeclaration();
                        val builder = ConfigurationMetadataPropertyCreator.collectJavadocsEnumFields(property, enumMem);
                        property.setDescription(builder.toString());
                    }
                }
            }
        }
    }
Main.

@param args the args
@throws Exception the exception
api/cas-server-core-api-configuration-model/src/main/java/org/apereo/cas/configuration/metadata/ConfigurationMetadataGenerator.java