package com.redhat.ceylon.common.tool; import java.util.HashMap; import java.util.Map; public class MapToolLoader extends ToolLoader { private final Map<String, String> map; private MapToolLoader() { this.map = new HashMap<>(); } public MapToolLoader(Map<Class<? extends Tool>, String> map) { this(); for (Map.Entry<Class<? extends Tool>, String> entry : map.entrySet()) { this.map.put(entry.getKey().getName(), entry.getValue()); } } @SafeVarargs public static MapToolLoader fromClassNames(Class<? extends Tool>... classes) { MapToolLoader result = new MapToolLoader(); for (Class<? extends Tool> cls : classes) { result.map.put(cls.getName(), result.camelCaseToDashes(cls.getSimpleName())); } return result; } @Override public String getToolName(String className) { return map.get(className); } @Override protected Iterable<String> toolClassNames() { return map.keySet(); } }