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 }