class Config implements Serializable, Comparable<Config<?>> {

    public boolean areKeyAndValueDefined(Enum<?> key) {
        Optional<String> value = getOrNone(key);

        return value.map(s -> !s.trim().isEmpty()).orElse(false);
    }

    private  Config(
            Class<E> cls,
            ImmutableMap<E, ConfigValue> values,
            ImmutableMap<?, Config<?>> subConfig,
            String qualifier,
            TimeUnit timeUnit,
            LengthUnit lengthUnit);
      Config(
            Class<E> cls,
            ImmutableMap<E, ConfigValue> values,
            ImmutableMap<?, Config<?>> subConfig,
            String qualifier);

}