org.seasar.framework.container.factory
クラス ConstantAnnotationHandler

java.lang.Object
  拡張org.seasar.framework.container.factory.AbstractAnnotationHandler
      拡張org.seasar.framework.container.factory.ConstantAnnotationHandler
すべての実装インタフェース:
AnnotationHandler

public class ConstantAnnotationHandler
extends AbstractAnnotationHandler

クラスに指定された定数アノテーションからコンポーネント定義を作成する実装クラスです。

定数アノテーションとはpublic,static,finalを用いて記述されたフィールドの事です。 フィールドのキーと値は次の形式で指定します。

 key1=value1,key2=value2,key3=value3....
 
指定出来るキーとその値はそれぞれの定数アノテーションで説明します。 一部の定数アノテーションのフィールドにはキーとその値を指定することが出来ないものもあります。 フィールドの値が不正な場合はIllegalArgumentExceptionをスローします。

Componentアノテーション

Componentアノテーションは、フィールド名がCOMPONENTString型のフィールドです。 Componentアノテーションであるフィールドに指定出来るキーは以下になります。

name
コンポーネント名
instance
インスタンス定義
autoBinding
自動バインディング定義
externalBinding
外部バインディング定義

指定されたキーとその値に従ってコンポーネント定義を作成します。

Bindingアノテーション

Bindingアノテーションは、フィールド名がプロパティ名_BINDINGString型のフィールドです。 Bindingアノテーションであるフィールドに指定出来るキーは以下になります。

bindingType
バインディングタイプ
value
ONGL式
また、BindingアノテーションのフィールドにはnullONGL式を直接指定することも出来ます。

指定されたキーとその値に従ってプロパティ定義を作成します。

Aspectアノテーション

Aspectアノテーションは、フィールド名がASPECTString型のフィールドです。 Aspectアノテーションであるフィールドに指定出来るキーは以下になります。
value
インターセプタ名
pointcut
ポイントカット

指定されたキーとその値に従ってアスペクト定義を作成します。

InterTypeアノテーション

InterTypeアノテーションは、フィールド名がINTER_TYPEString型のフィールドです。 InterTypeアノテーションであるフィールドには、ONGL式を指定します。

指定されたONGL式を元にインタータイプ定義を作成し、コンポーネント定義に追加します。

InitMethodアノテーション

InitMethodアノテーションは、フィールド名がINIT_METHODString型のフィールドです。 InitMethodアノテーションであるフィールドには、コンポーネントが初期化されるときに呼び出したいメソッド名を指定します。メソッドが複数ある時はカンマで区切ることが出来ます。

指定されたメソッド名から初期化メソッドを生成し、コンポーネント定義に追加します。

DestroyMethodアノテーション

DestroyMethodアノテーションは、フィールド名がDESTROY_METHODString型のフィールドです。 DestroyMethodアノテーションであるフィールドには、コンポーネントが終了される時に呼び出したいメソッド名を指定します。メソッドが複数ある時はカンマで区切ることが出来ます。

指定されたメソッド名からdestroyメソッドを生成し、コンポーネント定義に追加します。

作成者:
Maeno

フィールドの概要
 
クラス org.seasar.framework.container.factory.AbstractAnnotationHandler から継承したフィールド
ASPECT, AUTO_BINDING, BINDING_SUFFIX, BINDING_TYPE, COMPONENT, DESTROY_METHOD, EXTERNAL_BINDING, INIT_METHOD, INSTANCE, INTER_TYPE, INTERCEPTOR, NAME, POINTCUT, VALUE
 
コンストラクタの概要
ConstantAnnotationHandler()
           
 
メソッドの概要
 void appendAspect(ComponentDef componentDef)
          コンポーネント定義にアスペクト定義を追加します。
protected  void appendAspect(ComponentDef componentDef, java.lang.String interceptor, java.lang.reflect.Method targetMethod)
          指定されたインターセプタ名とメソッドからアスペクト定義を生成し、コンポーネント定義に追加します。
protected  void appendAspect(ComponentDef componentDef, java.lang.String interceptor, java.lang.String pointcut)
          指定されたインターセプタ名とポイントカットを表す文字列からアスペクト定義を生成し、コンポーネント定義に追加します。
 void appendDestroyMethod(ComponentDef componentDef)
          コンポーネント定義にdestroyMethodを追加します。
protected  void appendDestroyMethod(ComponentDef componentDef, java.lang.reflect.Method targetMethod)
          指定されたメソッドからdestroyメソッド定義を生成し、コンポーネント定義に追加します。
protected  void appendDestroyMethod(ComponentDef componentDef, java.lang.String methodName)
          指定されたメソッド名からdestroyメソッド定義を生成し、コンポーネント定義に追加します。
 void appendInitMethod(ComponentDef componentDef)
          コンポーネント定義に初期化メソッドを追加します。
protected  void appendInitMethod(ComponentDef componentDef, java.lang.reflect.Method method)
          指定されたメソッドから初期化メソッド定義を生成し、コンポーネント定義に追加します。
protected  void appendInitMethod(ComponentDef componentDef, java.lang.String methodName)
          指定されたメソッド名から初期化メソッド定義を生成し、コンポーネント定義に追加します。
 void appendInterType(ComponentDef componentDef)
          コンポーネント定義にインタータイプ定義を追加します。
protected  void appendInterType(ComponentDef componentDef, java.lang.String interTypeName)
          インタータイプ定義を生成し、その定義にインタータイプ名で生成したOGNL式をセットしてコンポーネント定義に追加します。
 ComponentDef createComponentDef(java.lang.Class componentClass, InstanceDef defaultInstanceDef, AutoBindingDef defaultAutoBindingDef, boolean defaultExternalBinding)
          コンポーネントクラス、インスタンス定義、自動バインディング定義、外部バインディングを指定してコンポーネント定義を作成します。
 PropertyDef createPropertyDef(BeanDesc beanDesc, java.lang.reflect.Field field)
          フィールドを指定してコンポーネント定義に追加するプロパティ定義を作成します。
 PropertyDef createPropertyDef(BeanDesc beanDesc, PropertyDesc propertyDesc)
          プロパティ名を指定してコンポーネント定義に追加するプロパティ定義を作成します。
protected  boolean isConstantAnnotationField(java.lang.reflect.Field field)
          フィールドが定数アノテーションであるかどうかを判断します。
 
クラス org.seasar.framework.container.factory.AbstractAnnotationHandler から継承したメソッド
appendDI, createComponentDef, createComponentDef, createComponentDef, createComponentDef, createComponentDef, createComponentDef, createPropertyDef, getAutoBindingDef, getInstanceDef, getInstanceDef, isDestroyMethodRegisterable, isFieldInjectionTarget, isInitMethodRegisterable
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

ConstantAnnotationHandler

public ConstantAnnotationHandler()
メソッドの詳細

createComponentDef

public ComponentDef createComponentDef(java.lang.Class componentClass,
                                       InstanceDef defaultInstanceDef,
                                       AutoBindingDef defaultAutoBindingDef,
                                       boolean defaultExternalBinding)
インタフェース AnnotationHandler の記述:
コンポーネントクラス、インスタンス定義、自動バインディング定義、外部バインディングを指定してコンポーネント定義を作成します。

パラメータ:
componentClass - コンポーネントクラス
defaultInstanceDef - インスタンス定義
defaultAutoBindingDef - 自動バインディング定義
defaultExternalBinding - 外部バインディング
戻り値:
コンポーネント定義

isConstantAnnotationField

protected boolean isConstantAnnotationField(java.lang.reflect.Field field)
フィールドが定数アノテーションであるかどうかを判断します。

パラメータ:
field - フィールド
戻り値:
フィールドが定数アノテーションの場合はtrue,そうでない場合はfalse

createPropertyDef

public PropertyDef createPropertyDef(BeanDesc beanDesc,
                                     PropertyDesc propertyDesc)
インタフェース AnnotationHandler の記述:
プロパティ名を指定してコンポーネント定義に追加するプロパティ定義を作成します。

パラメータ:
beanDesc - プロパティに追加するBean名。
propertyDesc - プロパティ名
戻り値:
プロパティ定義

createPropertyDef

public PropertyDef createPropertyDef(BeanDesc beanDesc,
                                     java.lang.reflect.Field field)
インタフェース AnnotationHandler の記述:
フィールドを指定してコンポーネント定義に追加するプロパティ定義を作成します。

パラメータ:
beanDesc - プロパティに追加するBean名。
field - フィールド名
戻り値:
プロパティ定義

appendAspect

public void appendAspect(ComponentDef componentDef)
インタフェース AnnotationHandler の記述:
コンポーネント定義にアスペクト定義を追加します。

パラメータ:
componentDef - コンポーネント定義

appendAspect

protected void appendAspect(ComponentDef componentDef,
                            java.lang.String interceptor,
                            java.lang.String pointcut)
指定されたインターセプタ名とポイントカットを表す文字列からアスペクト定義を生成し、コンポーネント定義に追加します。 但し、インターセプタ名がnullの場合にはEmptyRuntimeExceptionがスローされます。

パラメータ:
componentDef - コンポーネント定義
interceptor - インターセプタ名
pointcut - ポイントカットを表す文字列
例外:
EmptyRuntimeException - インターセプタ名がnullの場合

appendAspect

protected void appendAspect(ComponentDef componentDef,
                            java.lang.String interceptor,
                            java.lang.reflect.Method targetMethod)
指定されたインターセプタ名とメソッドからアスペクト定義を生成し、コンポーネント定義に追加します。 但し、インターセプタ名がnullの場合にはEmptyRuntimeExceptionがスローされます。

パラメータ:
componentDef - コンポーネント定義
interceptor - インターセプタ名
targetMethod - メソッド
例外:
EmptyRuntimeException - インターセプタ名がnullの場合

appendInterType

public void appendInterType(ComponentDef componentDef)
インタフェース AnnotationHandler の記述:
コンポーネント定義にインタータイプ定義を追加します。

パラメータ:
componentDef - コンポーネント定義

appendInterType

protected void appendInterType(ComponentDef componentDef,
                               java.lang.String interTypeName)
インタータイプ定義を生成し、その定義にインタータイプ名で生成したOGNL式をセットしてコンポーネント定義に追加します。

パラメータ:
componentDef - コンポーネント定義
interTypeName - インタータイプ名

appendInitMethod

public void appendInitMethod(ComponentDef componentDef)
インタフェース AnnotationHandler の記述:
コンポーネント定義に初期化メソッドを追加します。

パラメータ:
componentDef - コンポーネント定義

appendInitMethod

protected void appendInitMethod(ComponentDef componentDef,
                                java.lang.reflect.Method method)
指定されたメソッドから初期化メソッド定義を生成し、コンポーネント定義に追加します。

パラメータ:
componentDef - コンポーネント定義
method - メソッド

appendInitMethod

protected void appendInitMethod(ComponentDef componentDef,
                                java.lang.String methodName)
指定されたメソッド名から初期化メソッド定義を生成し、コンポーネント定義に追加します。

パラメータ:
componentDef - コンポーネント定義
methodName - メソッド名

appendDestroyMethod

public void appendDestroyMethod(ComponentDef componentDef)
インタフェース AnnotationHandler の記述:
コンポーネント定義にdestroyMethodを追加します。

パラメータ:
componentDef - コンポーネント定義

appendDestroyMethod

protected void appendDestroyMethod(ComponentDef componentDef,
                                   java.lang.reflect.Method targetMethod)
指定されたメソッドからdestroyメソッド定義を生成し、コンポーネント定義に追加します。

パラメータ:
componentDef - コンポーネント定義
targetMethod - メソッド

appendDestroyMethod

protected void appendDestroyMethod(ComponentDef componentDef,
                                   java.lang.String methodName)
指定されたメソッド名からdestroyメソッド定義を生成し、コンポーネント定義に追加します。

パラメータ:
componentDef - コンポーネント定義
methodName - メソッド名


Copyright © 2004-2014 The Seasar Foundation. All Rights Reserved.