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<String, Object> getAllValues();
|
|
Optional<Value> getValue(String key);
|
|
Values merge(Values source);
|
|
int size();
|
|
Set<String> getNonExistentKeys(Collection<String> keys);
|
|
default boolean isEmpty() {
|
return size() == 0;
|
}
|
|
default boolean isNoEmpty() {
|
return size() > 0;
|
}
|
|
default <T> Optional<T> getValue(ConfigKey<T> key) {
|
return (Optional<T>) getValue(key.getKey()).map(val -> {
|
return val.as(key.getType());
|
});
|
}
|
|
default String getString(String key, Supplier<String> 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<Number> 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<String, ?> values) {
|
return SimpleValues.of((Map<String, Object>) values);
|
}
|
}
|