package com.qianwen.core.tool.metadata; import java.util.Collection; import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.function.Supplier; import com.qianwen.core.tool.metadata.config.ConfigKey; /* loaded from: blade-core-tool-9.3.0.0-SNAPSHOT.jar:org/springblade/core/tool/metadata/Values.class */ public interface Values { Map getAllValues(); Optional getValue(String key); Values merge(Values source); int size(); Set getNonExistentKeys(Collection keys); default boolean isEmpty() { return size() == 0; } default boolean isNoEmpty() { return size() > 0; } default Optional getValue(ConfigKey key) { return (Optional) getValue(key.getKey()).map(val -> { return val.as(key.getType()); }); } default String getString(String key, Supplier defaultValue) { return (String) getValue(key).map((v0) -> { return v0.asString(); }).orElseGet(defaultValue); } default String getString(String key, String defaultValue) { return getString(key, () -> { return defaultValue; }); } default Number getNumber(String key, Supplier defaultValue) { return (Number) getValue(key).map((v0) -> { return v0.asNumber(); }).orElseGet(defaultValue); } default Number getNumber(String key, Number defaultValue) { return getNumber(key, () -> { return defaultValue; }); } static Values of(Map values) { return SimpleValues.of((Map) values); } }