public class BeanContext {
// Add methods:
void add(Object bean);
void add(String name, Object bean);
// Update methods:
void update();
void update(String phase);
// Get bean methods:
<T> T getBean(Class<? extends T> clazz);
<T> T getBean(Class<? extends T> clazz, boolean inherit);
<T> T getBean(String name, Class<T> clazz);
<T> T getBean(String name, Class<T> clazz, boolean inherit);
// Get beans methods:
<T> List<T> getBeans(Class<T> clazz);
<T> List<T> getBeans(Class<T> clazz, boolean inherit);
// Connect method:
void connect(Object bean);
}