code: public <T extends ValueMap> T getValueMap(String key, Class<T> clazz) {
      Object value = get(key);
      return coerceToValueMap(value, clazz);
    }
docs: Returns the value mapped by {@code key} if it exists and if it can be coerced to the given
  type. The expected subclass MUST have a constructor that accepts a {@link Map}.