docs: protected Map<String, Object> getEnumValues(FacesContext facesContext, Class<?> type, String allSuffix) {
  
          if (type.isEnum()) {
  
              boolean cacheEnabled = facesContext.isProjectStage(ProjectStage.Production);
              Map<Class<?>, Map<String, Object>> cache
                      = PrimeApplicationContext.getCurrentInstance(FacesContext.getCurrentInstance()).getEnumCacheMap();
  
              Map<String, Object> enums;
  
              if (cacheEnabled && cache.containsKey(type)) {
                  enums = cache.get(type);
              }
              else {
                  enums = new EnumHashMap<>(type);
  
                  for (Object value : type.getEnumConstants()) {
                      Enum<?> currentEnum = (Enum<?>) value;
                      enums.put(currentEnum.name(), currentEnum);
                  }
  
                  if (allSuffix != null) {
                      enums.put(allSuffix, type.getEnumConstants());
                  }
  
                  enums.put(DEFAULT_ALL_SUFFIX, type.getEnumConstants());
  
                  enums = Collections.unmodifiableMap(enums);
  
                  if (cacheEnabled) {
                      cache.put(type, enums);
                  }
              }
  
              return enums;
          }
          else {
              throw new FacesException("Class '" + type + "' is not an enum.");
          }
      }