public <T> T getOrDefault(String key, Function<String, T> function, T defaultValue) {
      String value = tableDescriptor.getValue(key);
      if (value == null) {
        return defaultValue;
      } else {
        return function.apply(value);
      }
    }
Inner class caries the state necessary to perform a single invocation of
{@link #computePlansForTable(TableDescriptor)}. Grabbing this data from the assignment manager
up-front allows any computed values to be realized just once.
hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java