/** * コンポーネントを返します。 * * @param <T> * @param componentClass コンポーネントのキー * @return コンポーネント */ public <T> T get(Class<T> componentClass) { if (!initialized) { throw new IllegalStateException("コンテナが初期化されていません。"); } if (!managers.containsKey(componentClass)) { throw new IllegalArgumentException("コンポーネントがコンテナに登録されていません。" + componentClass); } ComponentManager manager = managers.get(componentClass); T component = (T) manager.get(injector, this); return component; }
/** コンテナを破棄します。 */ public void destroy() { for (ComponentManager manager : managers.values()) { manager.destroy(); } managers.clear(); }