View Javadoc

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.context;
17  
18  import org.seasar.uruma.component.UIComponent;
19  
20  /**
21   * ウィジットを保持するためのインタフェースです。<br />
22   * {@link WidgetHandle} は id プロパティによってユニークとなります。<br />
23   * 
24   * @author y-komori
25   */
26  public interface WidgetHandle {
27      /**
28       * ウィジットの ID を取得します。<br />
29       * 
30       * @return ID
31       */
32      public String getId();
33  
34      /**
35       * {@link WidgetHandle} が保持するウィジットを取得します。<br />
36       * 
37       * @return ウィジットのインスタンス
38       */
39      public Object getWidget();
40  
41      /**
42       * {@link WidgetHandle} が保持するウィジットを <code>T</code> にキャスト取得します。<br />
43       * 
44       * @param <T>
45       *            キャストする型
46       * @return ウィジットのインスタンス
47       */
48      public <T> T getCastWidget();
49  
50      /**
51       * {@link WidgetHandle} が保持するウィジットの型を取得します。<br />
52       * 
53       * @return ウィジットの型
54       */
55      public Class<?> getWidgetClass();
56  
57      /**
58       * {@link UIComponent} を取得します。<br />
59       * 
60       * @return {@link UIComponent} オブジェクト
61       */
62      public UIComponent getUiComponent();
63  
64      /**
65       * 保持するウィジットの型が <code>clazz</code> のサブクラスであるかどうかをチェックします。<br />
66       * 
67       * @param clazz
68       *            チェックする型の {@link Class} オブジェクト
69       * @return サブクラスであれば <code>true</code>。そうでなければ <code>false</code>
70       */
71      public boolean instanceOf(Class<?> clazz);
72  
73      /**
74       * ウィジットの ID を設定します。<br />
75       */
76      public void setId(String id);
77  
78      /**
79       * ウィジットに対応する {@link UIComponent} を設定します。<br />
80       */
81      public void setUiComponent(UIComponent uiComponent);
82  }