package org.smoothbuild.lang.function; import static java.util.Collections.unmodifiableCollection; import java.util.Collection; import java.util.HashMap; import java.util.Map; import javax.inject.Singleton; import org.smoothbuild.lang.function.base.Function; import org.smoothbuild.lang.function.base.Name; @Singleton public class Functions { private final Map<Name, Function> functions = new HashMap<>(); public void add(Function function) { functions.put(function.name(), function); } public Function get(Name name) { return functions.get(name); } public boolean contains(Name name) { return functions.containsKey(name); } public Collection<Name> names() { return unmodifiableCollection(functions.keySet()); } }