package com.towel.swing;
import java.awt.Container;
import java.util.Map;
import com.towel.awt.ann.ActionManager;
import com.towel.bind.annotation.AnnotatedBinder;
public class Manager {
private Object comp;
private Map<Modules, Object> inits;
public Manager(Object comp) {
this.comp = comp;
}
public <T> T init(Modules module) {
Object result = module.init(comp);
inits.put(module, result);
return (T) result;
}
public <T> T get(Modules module) {
return (T) inits.get(module);
}
public enum Modules {
AnnotatedBinder {
public AnnotatedBinder init(Object comp) {
return new AnnotatedBinder((Container) comp);
}
},
ActionManager {
public ActionManager init(Object comp) {
return new ActionManager(comp);
}
};
abstract Object init(Object comp);
}
}