package com.qianwen.core.tool.metadata.unit;
|
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.Optional;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.stream.Collectors;
|
import com.qianwen.core.tool.utils.StringPool;
|
|
/* loaded from: blade-core-tool-9.3.0.0-SNAPSHOT.jar:org/springblade/core/tool/metadata/unit/ValueUnits.class */
|
public class ValueUnits {
|
private static final List<ValueUnitSupplier> suppliers = new CopyOnWriteArrayList();
|
|
static {
|
register(new ValueUnitSupplier() { // from class: org.springblade.core.tool.metadata.unit.ValueUnits.1
|
@Override // org.springblade.core.tool.metadata.unit.ValueUnitSupplier
|
public Optional<ValueUnit> getById(String id) {
|
return Optional.ofNullable(UnifyUnit.of(id));
|
}
|
|
@Override // org.springblade.core.tool.metadata.unit.ValueUnitSupplier
|
public List<ValueUnit> getAll() {
|
return Arrays.asList(UnifyUnit.values());
|
}
|
});
|
}
|
|
public static void register(ValueUnitSupplier supplier) {
|
suppliers.add(supplier);
|
}
|
|
public static Optional<ValueUnit> lookup(String id) {
|
for (ValueUnitSupplier supplier : suppliers) {
|
Optional<ValueUnit> unit = supplier.getById(id);
|
if (unit.isPresent()) {
|
return unit;
|
}
|
}
|
if (id.startsWith(StringPool.LEFT_BRACE)) {
|
return Optional.ofNullable(JsonValueUnit.of(id));
|
}
|
return Optional.of(SymbolValueUnit.of(id));
|
}
|
|
public static List<ValueUnit> getAllUnit() {
|
return (List) suppliers.stream().map((v0) -> {
|
return v0.getAll();
|
}).flatMap((v0) -> {
|
return v0.stream();
|
}).collect(Collectors.toList());
|
}
|
}
|