public Class locatePropertiesClassForType(final ClassOrInterfaceType type) {
        var typeName = type.getNameAsString();
        if (cachedPropertiesClasses.containsKey(typeName)) {
            return cachedPropertiesClasses.get(typeName);
        }

        val matcher = GENERIC_TYPED_CLASS.matcher(type.toString());
        if (matcher.matches()) {
            typeName = matcher.group(1);
        }

        val error = new IllegalArgumentException("Can't locate class for " + typeName);
        val clz = findClassBySimpleNameInPackage(typeName, "org.apereo.cas").orElseThrow(() -> error);
        cachedPropertiesClasses.put(typeName, clz);
        return clz;
    }
Locate properties class for type class.

@param type the type
@return the class
api/cas-server-core-api-configuration-model/src/main/java/org/apereo/cas/configuration/metadata/ConfigurationMetadataClassSourceLocator.java