org.seasar.framework.aop.javassist
クラス EnhancedClassGenerator

java.lang.Object
  拡張org.seasar.framework.aop.javassist.AbstractGenerator
      拡張org.seasar.framework.aop.javassist.EnhancedClassGenerator

public class EnhancedClassGenerator
extends AbstractGenerator

コンポーネントのバイトコードをエンハンスするクラスです。

作成者:
koichik

フィールドの概要
protected  CtClass enhancedClass
          エンハンスされるクラス
protected  java.lang.String enhancedClassName
          エンハンスされるクラス名
protected  java.lang.Class targetClass
          ターゲットクラス
 
クラス org.seasar.framework.aop.javassist.AbstractGenerator から継承したフィールド
classPool, DEFINE_CLASS_METHOD_NAME, defineClassMethod, protectionDomain
 
コンストラクタの概要
EnhancedClassGenerator(ClassPool classPool, java.lang.Class targetClass, java.lang.String enhancedClassName)
          EnhancedClassGeneratorを作成します。
 
メソッドの概要
 void applyInterType(InterType interType)
          InterTypeを適用します。
static java.lang.String aroundTryCatchBlock(java.lang.Class[] exceptionTypes, java.lang.String code)
          元のソースコードをtry, cacheで囲んだソースコードを返します。
 void createInvokeSuperMethod(java.lang.reflect.Method method, java.lang.String invokeSuperMethodName)
          superクラスのメソッドを呼び出すためのメソッドを作成します。
static java.lang.String createInvokeSuperMethodSource(java.lang.reflect.Method method)
          superクラスのメソッドを呼び出すためのソースコードを作成します。
 void createTargetMethod(java.lang.reflect.Method method, java.lang.String methodInvocationClassName)
          ターゲットのメソッドを作成します。
static java.lang.String createTargetMethodSource(java.lang.reflect.Method method, java.lang.String methodInvocationClassName)
          ターゲットメソッド用のソースコードを作成します。
static java.lang.Class[] normalizeExceptionTypes(java.lang.Class[] exceptionTypes)
          例外の型を正規化します。
 void setupClass()
          CtClassをセットアップします。
 void setupConstructor()
          Constructorのセットアップを行ないます。
 void setupInterface()
          インターフェース用のセットアップを行ないます。
 java.lang.Class toClass(java.lang.ClassLoader classLoader)
          CtClassをClassに変換します。
 
クラス org.seasar.framework.aop.javassist.AbstractGenerator から継承したメソッド
createConstructor, createConstructor, createCtClass, createCtClass, createCtClass, createDefaultConstructor, createDefaultConstructor, createMethod, createMethod, createMethod, fromObject, getAndRenameCtClass, getAndRenameCtClass, getDeclaredMethod, setInterface, setInterfaces, setMethodBody, toClass, toCtClass, toCtClass, toCtClassArray, toCtClassArray, toObject
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

targetClass

protected final java.lang.Class targetClass
ターゲットクラス


enhancedClassName

protected final java.lang.String enhancedClassName
エンハンスされるクラス名


enhancedClass

protected CtClass enhancedClass
エンハンスされるクラス

コンストラクタの詳細

EnhancedClassGenerator

public EnhancedClassGenerator(ClassPool classPool,
                              java.lang.Class targetClass,
                              java.lang.String enhancedClassName)
EnhancedClassGeneratorを作成します。

パラメータ:
classPool -
targetClass -
enhancedClassName -
メソッドの詳細

createTargetMethod

public void createTargetMethod(java.lang.reflect.Method method,
                               java.lang.String methodInvocationClassName)
ターゲットのメソッドを作成します。

パラメータ:
method -
methodInvocationClassName -

createInvokeSuperMethod

public void createInvokeSuperMethod(java.lang.reflect.Method method,
                                    java.lang.String invokeSuperMethodName)
superクラスのメソッドを呼び出すためのメソッドを作成します。

パラメータ:
method -
invokeSuperMethodName -

applyInterType

public void applyInterType(InterType interType)
InterTypeを適用します。

パラメータ:
interType -

toClass

public java.lang.Class toClass(java.lang.ClassLoader classLoader)
CtClassをClassに変換します。

パラメータ:
classLoader -
戻り値:

setupClass

public void setupClass()
CtClassをセットアップします。


setupInterface

public void setupInterface()
インターフェース用のセットアップを行ないます。


setupConstructor

public void setupConstructor()
Constructorのセットアップを行ないます。


createTargetMethodSource

public static java.lang.String createTargetMethodSource(java.lang.reflect.Method method,
                                                        java.lang.String methodInvocationClassName)
ターゲットメソッド用のソースコードを作成します。

パラメータ:
method -
methodInvocationClassName -
戻り値:
ターゲットメソッド用のソースコード

createInvokeSuperMethodSource

public static java.lang.String createInvokeSuperMethodSource(java.lang.reflect.Method method)
superクラスのメソッドを呼び出すためのソースコードを作成します。

パラメータ:
method -
戻り値:
superクラスのメソッドを呼び出すためのソースコード

normalizeExceptionTypes

public static java.lang.Class[] normalizeExceptionTypes(java.lang.Class[] exceptionTypes)
例外の型を正規化します。

パラメータ:
exceptionTypes -
戻り値:

aroundTryCatchBlock

public static java.lang.String aroundTryCatchBlock(java.lang.Class[] exceptionTypes,
                                                   java.lang.String code)
元のソースコードをtry, cacheで囲んだソースコードを返します。

パラメータ:
exceptionTypes -
code -
戻り値:
元のソースコードをtry, cacheで囲んだソースコード


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