All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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