public EvictionAttributes convertToEvictionAttributes() {
      EvictionAction action = EvictionAction.parseAction(evictionAction);

      ObjectSizer sizer;
      if (objectSizer != null) {
        try {
          Class<?> sizerClass = ClassPathLoader.getLatest().forName(objectSizer);
          sizer = (ObjectSizer) sizerClass.newInstance();
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
          throw new IllegalArgumentException(
              "Unable to instantiate class " + objectSizer + " - " + e);
        }
      } else {
        sizer = ObjectSizer.DEFAULT;
      }

      if (maxMemory == null && maxEntryCount == null) {
        return EvictionAttributes.createLRUHeapAttributes(sizer, action);
      } else if (maxMemory != null) {
        return EvictionAttributes.createLRUMemoryAttributes(maxMemory, sizer, action);
      } else {
        return EvictionAttributes.createLRUEntryAttributes(maxEntryCount, action);
      }
    }
the difference between this and ExpirationAttributes is that this allows time and action to be
null
geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/RegionFunctionArgs.java