public List<Class<? extends AbstractConfig>> getInjectableConfigClasses() {

        final Map<PropertyPath, ObjectInfo<? extends AbstractConfig>> objectInfoMap;
        if (this.objectInfoMap.isEmpty()) {
            objectInfoMap = new HashMap<>();

            buildObjectInfoMap(
                    JsonUtil.getMapper(),
                    new AppConfig(),
                    PropertyPath.fromParts("stroom"),
                    objectInfoMap);
        } else {
            objectInfoMap = this.objectInfoMap;
        }

        return objectInfoMap.values()
                .stream()
                .map(ObjectInfo::getObjectClass)
                .filter(clazz ->
                        !clazz.isAnnotationPresent(NotInjectableConfig.class))
                .filter(clazz ->
                        !clazz.isAnnotationPresent(BootStrapConfig.class))
                .collect(Collectors.toList());
    }
@return All the classes that can be obtained from ConfigMapper
stroom-config/stroom-config-global-impl/src/main/java/stroom/config/global/impl/ConfigMapper.java