org.seasar.toplink.jpa.impl
クラス InstrumentationImpl

java.lang.Object
  上位を拡張 org.seasar.toplink.jpa.impl.InstrumentationImpl
すべての実装されたインタフェース:
Instrumentation

public class InstrumentationImpl
extends Object
implements Instrumentation

指定されたクラスの変換を行うクラスです。

クラスの変換はaddTransformer(ClassFileTransformer)が呼びされた時点で行われます。

作成者:
taedium

フィールドの概要
protected  List<String> classNames
          変換されるクラス名のリストです。
 
コンストラクタの概要
InstrumentationImpl(List<String> classNames)
          インスタンスを構築します。
 
メソッドの概要
 void addTransformer(ClassFileTransformer transformer)
           
protected  ClassLoader detectClassLoader(String resourcePath)
          変換されるクラスが定義されることになるクラスローダーを検出します。
 Class[] getAllLoadedClasses()
           
protected  List<ClassLoader> getClassLoaderList(ClassLoader loader)
          ClassLoaderを受け取り、引数のClassLoaderから親ClassLoaderを検索し、取得できた全てのClassLoaderをListで返します。
 Class[] getInitiatedClasses(ClassLoader loader)
           
 long getObjectSize(Object objectToSize)
           
protected  boolean isLoaded(ClassLoader loader, String className)
          基点となるクラスローダーとその上位の階層のクラスローダーに指定されたクラスがロードされている場合trueを返します。
 boolean isRedefineClassesSupported()
           
 void redefineClasses(ClassDefinition[] definitions)
           
 boolean removeTransformer(ClassFileTransformer transformer)
           
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

classNames

protected final List<String> classNames
変換されるクラス名のリストです。

コンストラクタの詳細

InstrumentationImpl

public InstrumentationImpl(List<String> classNames)
インスタンスを構築します。

パラメータ:
classNames - 変換されるクラス名のリスト
メソッドの詳細

addTransformer

public void addTransformer(ClassFileTransformer transformer)
定義:
インタフェース Instrumentation 内の addTransformer

detectClassLoader

protected ClassLoader detectClassLoader(String resourcePath)
変換されるクラスが定義されることになるクラスローダーを検出します。

パラメータ:
resourcePath - クラス名のパス表現
戻り値:
変換されるクラスが定義されることになるクラスローダー

getClassLoaderList

protected List<ClassLoader> getClassLoaderList(ClassLoader loader)
ClassLoaderを受け取り、引数のClassLoaderから親ClassLoaderを検索し、取得できた全てのClassLoaderをListで返します。

パラメータ:
loader - ClassLoaderオブジェクト
戻り値:
引数のClassLoaderを含み、取得出来る全ての親ClassLoaderを含むList。 親が子の前に来るように順番付けしている。

isLoaded

protected boolean isLoaded(ClassLoader loader,
                           String className)
基点となるクラスローダーとその上位の階層のクラスローダーに指定されたクラスがロードされている場合trueを返します。

パラメータ:
loader - 基点となるクラスローダー
className - クラス名
戻り値:
指定されたクラスがすでにロードされているならばtrue、されていないならばfalse

getAllLoadedClasses

public Class[] getAllLoadedClasses()
定義:
インタフェース Instrumentation 内の getAllLoadedClasses

getInitiatedClasses

public Class[] getInitiatedClasses(ClassLoader loader)
定義:
インタフェース Instrumentation 内の getInitiatedClasses

getObjectSize

public long getObjectSize(Object objectToSize)
定義:
インタフェース Instrumentation 内の getObjectSize

isRedefineClassesSupported

public boolean isRedefineClassesSupported()
定義:
インタフェース Instrumentation 内の isRedefineClassesSupported

redefineClasses

public void redefineClasses(ClassDefinition[] definitions)
                     throws ClassNotFoundException,
                            UnmodifiableClassException
定義:
インタフェース Instrumentation 内の redefineClasses
例外:
ClassNotFoundException
UnmodifiableClassException

removeTransformer

public boolean removeTransformer(ClassFileTransformer transformer)
定義:
インタフェース Instrumentation 内の removeTransformer


Copyright © 2006-2008 The Seasar Foundation. All Rights Reserved.