docs: public static List<CmsResource> calculateModuleResources(final CmsObject cms, final CmsModule module)
      throws CmsException {
  
          CmsObject cmsClone = adjustSiteRootIfNecessary(cms, module);
          List<CmsResource> result = null;
          List<String> excluded = CmsFileUtil.removeRedundancies(module.getExcludeResources());
          excluded = removeNonAccessible(cmsClone, excluded);
          List<String> resourceSitePaths = CmsFileUtil.removeRedundancies(module.getResources());
          resourceSitePaths = removeNonAccessible(cmsClone, resourceSitePaths);
  
          List<CmsResource> moduleResources = new ArrayList<CmsResource>(resourceSitePaths.size());
          for (String resourceSitePath : resourceSitePaths) {
              // assumes resources are accessible - already checked aboveremoveNonAccessible
              CmsResource resource = cmsClone.readResource(resourceSitePath);
              moduleResources.add(resource);
          }
  
          if (excluded.isEmpty()) {
              result = moduleResources;
          } else {
              result = new ArrayList<CmsResource>();
  
              addCalculatedModuleResources(result, cmsClone, moduleResources, excluded);
  
          }
          return result;
  
      }