docs: private CmsNewResourceInfo createNewResourceInfo(CmsObject cms, CmsResource modelResource, Locale locale)
      throws CmsException {
  
          // if model page got overwritten by another resource, reread from site path
          if (!cms.existsResource(modelResource.getStructureId(), CmsResourceFilter.ONLY_VISIBLE_NO_DELETED)) {
              modelResource = cms.readResource(cms.getSitePath(modelResource), CmsResourceFilter.ONLY_VISIBLE_NO_DELETED);
          }
          int typeId = modelResource.getTypeId();
          String name = OpenCms.getResourceManager().getResourceType(typeId).getTypeName();
          String title = cms.readPropertyObject(
              modelResource,
              CmsPropertyDefinition.PROPERTY_TITLE,
              false,
              locale).getValue();
          String description = cms.readPropertyObject(
              modelResource,
              CmsPropertyDefinition.PROPERTY_DESCRIPTION,
              false,
              locale).getValue();
  
          boolean editable = false;
          try {
              CmsResource freshModelResource = cms.readResource(
                  modelResource.getStructureId(),
                  CmsResourceFilter.ONLY_VISIBLE_NO_DELETED);
              editable = cms.hasPermissions(
                  freshModelResource,
                  CmsPermissionSet.ACCESS_WRITE,
                  false,
                  CmsResourceFilter.DEFAULT);
          } catch (CmsException e) {
              LOG.warn(e.getLocalizedMessage(), e);
          }
          CmsNewResourceInfo info = new CmsNewResourceInfo(
              typeId,
              name,
              title,
              description,
              modelResource.getStructureId(),
              editable,
              description);
          info.setBigIconClasses(CmsIconUtil.getIconClasses(name, null, false));
          Float navpos = null;
          try {
              CmsProperty navposProp = cms.readPropertyObject(modelResource, CmsPropertyDefinition.PROPERTY_NAVPOS, true);
              String navposStr = navposProp.getValue();
              if (navposStr != null) {
                  try {
                      navpos = Float.valueOf(navposStr);
                  } catch (NumberFormatException e) {
                      // noop
                  }
              }
          } catch (CmsException e) {
              LOG.warn(e.getLocalizedMessage(), e);
          }
  
          info.setNavPos(navpos);
          info.setDate(
              CmsDateUtil.getDate(new Date(modelResource.getDateLastModified()), DateFormat.LONG, getWorkplaceLocale()));
          info.setVfsPath(modelResource.getRootPath());
          return info;
      }