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 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 getById(String id) { return Optional.ofNullable(UnifyUnit.of(id)); } @Override // org.springblade.core.tool.metadata.unit.ValueUnitSupplier public List getAll() { return Arrays.asList(UnifyUnit.values()); } }); } public static void register(ValueUnitSupplier supplier) { suppliers.add(supplier); } public static Optional lookup(String id) { for (ValueUnitSupplier supplier : suppliers) { Optional 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 getAllUnit() { return (List) suppliers.stream().map((v0) -> { return v0.getAll(); }).flatMap((v0) -> { return v0.stream(); }).collect(Collectors.toList()); } }