docs: public ResourceModelSource createCachingSource(
              ResourceModelSource origin,
              String ident,
              String descr,
              SourceFactory.CacheType type,
              final boolean logging
      )
      {
          final File file = getResourceModelSourceFileCacheForType(ident);
          final ResourceModelSourceService nodesSourceService = resourceModelSourceService;
          final ResourceFormatGeneratorService resourceFormatGeneratorService = getResourceFormatGeneratorService();
          final Properties fileSourceConfig = generateFileSourceConfigurationProperties(
                  file.getAbsolutePath(),
                  ResourceXMLFormatGenerator.SERVICE_PROVIDER_TYPE, false, false
          );
          try {
              ResourceModelSource fileSource = nodesSourceService.getSourceForConfiguration("file", fileSourceConfig);
  
              ResourceFormatGenerator generatorForFormat = resourceFormatGeneratorService.getGeneratorForFormat
                      (ResourceXMLFormatGenerator.SERVICE_PROVIDER_TYPE);
  
              String ident1 = "[ResourceModelSource: " + descr + ", project: " + projectConfig.getName() + "]";
              StoreExceptionHandler handler = new StoreExceptionHandler(ident);
              ResourceModelSourceCache cache = new FileResourceModelSourceCache(
                      file,
                      generatorForFormat,
                      fileSource
              );
              if(logging) {
                  cache = new LoggingResourceModelSourceCache(cache, ident1);
              }
              return SourceFactory.cachedSource(
                      origin,
                      ident1,
                      handler,
                      cache,
                      type
              );
          } catch (UnsupportedFormatException | ExecutionServiceException e) {
              e.printStackTrace();
          }
          return null;
      }