
io.gridgo.utils.format.DefaultFormatTransformerRegistry Maven / Gradle / Ivy
package io.gridgo.utils.format;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.cliffc.high_scale_lib.NonBlockingHashMap;
class DefaultFormatTransformerRegistry implements FormatTransformerRegistry {
private final Map registry = new NonBlockingHashMap<>();
@Override
public List getChain(List transformerNames) {
if (transformerNames == null)
return Collections.emptyList();
List list = new LinkedList<>();
for (String name : transformerNames) {
if (!registry.containsKey(name)) {
throw new NullPointerException("StringTransformer for name " + name + " didn't registered");
}
list.add(this.registry.get(name));
}
return list;
}
@Override
public Map getAll() {
return new HashMap<>(this.registry);
}
@Override
public FormatTransformer addTransformer(String name, FormatTransformer transformer) {
return this.registry.putIfAbsent(name, transformer);
}
@Override
public FormatTransformer removeTransformer(String name) {
return this.registry.remove(name);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy