1 /* 2 * Copyright 2004-2008 the Seasar Foundation and the Others. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 13 * either express or implied. See the License for the specific language 14 * governing permissions and limitations under the License. 15 */ 16 package org.seasar.uruma.core; 17 18 import java.util.List; 19 20 import org.seasar.uruma.component.Template; 21 import org.seasar.uruma.component.UIComponentContainer; 22 23 /** 24 * 画面定義テンプレートを管理するためのインターフェースです。<br /> 25 * 26 * @author y-komori 27 */ 28 public interface TemplateManager { 29 /** 30 * 指定されたパスの画面定義 XML を読み込み、{@link Template} オブジェクトを返します。<br /> 31 * 32 * @param path 33 * 画面定義 XML のパス 34 * @return {@link Template} オブジェクト 35 */ 36 public Template getTemplate(final String path); 37 38 /** 39 * 指定された id を持つ {@link Template} オブジェクトを返します。<br /> 事前に {@link 40 * #loadTemplates(List)} メソッドでロードしたテンプレートが対象です。<br /> 41 * 42 * @param id 43 * テンプレート ID 44 * @return {@link Template} オブジェクト 45 */ 46 public Template getTemplateById(String id); 47 48 /** 49 * 指定されたパスの画面定義 XML を一括読み込みします。<br /> 50 * 51 * @param pathList 52 * 画面定義 XML のパスリスト 53 */ 54 public void loadTemplates(List<String> pathList); 55 56 /** 57 * 指定されたタイプのルートコンポーネントを持つ {@link Template} のリストを返します。<br /> 58 * 59 * @param componentClass 60 * ルートコンポーネントクラス 61 * @return {@link Template} のリスト 62 */ 63 public List<Template> getTemplates( 64 Class<? extends UIComponentContainer> componentClass); 65 66 /** 67 * キャッシュしている内容をクリアします。 68 */ 69 public void clear(); 70 71 /** 72 * 指定された idのテンプレートキャッシュの内容をクリアします。<br /> 73 * 74 * @param id 75 * テンプレート ID 76 */ 77 public void remove(final String id); 78 }