blob: df7be47070c914edaea68a3ff88b3b733aaf34b9 [file] [log] [blame]
package de.ids_mannheim.korap.config;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* @author hanl
* @date 17/06/2015
*/
public class DefaultHandler {
private Map<String, Object> defaults;
public DefaultHandler () {
this.defaults = new HashMap<>();
loadClasses();
}
private void loadClasses () {
Set<Class<?>> cls = KustvaktClassLoader
.loadFromAnnotation(Configurable.class);
for (Class clazz : cls) {
Configurable c = (Configurable) clazz
.getAnnotation(Configurable.class);
try {
this.defaults.put(c.value(), clazz.newInstance());
}
catch (InstantiationException | IllegalAccessException e) {
throw new RuntimeException("Could not instantiate class");
}
}
}
public Object getDefault (String name) {
return this.defaults.get(name);
}
public <T> T getDefault (Class<T> tClass) {
for (Object o : this.defaults.values()) {
if (o.getClass().equals(tClass))
return (T) o;
}
return null;
}
public void remove (String name) {
this.defaults.remove(name);
}
@Override
public String toString () {
return defaults.toString();
}
}