org.seasar.framework.jpa.util
クラス ChildFirstClassLoader

java.lang.Object
  上位を拡張 java.lang.ClassLoader
      上位を拡張 org.seasar.framework.jpa.util.AbstractClassLoader
          上位を拡張 org.seasar.framework.jpa.util.ChildFirstClassLoader

public class ChildFirstClassLoader
extends AbstractClassLoader

未ロードのクラスを親クラスローダに委譲せずに自身でロードするクラスローダです。

作成者:
taedium

フィールドの概要
protected  List<ClassLoaderListener> listeners
          ClassLoaderListenerのリスト
 
クラス org.seasar.framework.jpa.util.AbstractClassLoader から継承されたフィールド
includedNames
 
コンストラクタの概要
ChildFirstClassLoader()
          インスタンスを構築します。
ChildFirstClassLoader(ClassLoader parent)
          インスタンスを構築します。
ChildFirstClassLoader(ClassLoader parent, Set<String> includedNames)
          インスタンスを構築します。
 
メソッドの概要
 void addClassLoaderListener(ClassLoaderListener listener)
          このクラスローダからクラスローダイベントを受け取るためにクラスローダリスナを追加します。
protected  Class<?> doDefineClass(String className, byte[] bytes)
          クラスを定義します。
protected  void fireClassDefinedEvent(String className, byte[] bytecode, Class<?> definedClass)
          クラスが定義されたことを通知します。
 void removeClassLoaderListener(ClassLoaderListener listener)
          このクラスローダからクラスローダイベントを受け取らないためにクラスローダリスナを削除します。
 
クラス org.seasar.framework.jpa.util.AbstractClassLoader から継承されたメソッド
findClass, getSystemClass, isIncludedClass, loadClass, resolveClass
 
クラス java.lang.ClassLoader から継承されたメソッド
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

listeners

protected List<ClassLoaderListener> listeners
ClassLoaderListenerのリスト

コンストラクタの詳細

ChildFirstClassLoader

public ChildFirstClassLoader()
インスタンスを構築します。

コンテキストクラスローダからロードされるクラス及び、java.またはjavax.で始まるクラスを除いて 親クラスローダに委譲せずに自身でロードするように構成します。


ChildFirstClassLoader

public ChildFirstClassLoader(ClassLoader parent)
インスタンスを構築します。

ブートストラップクラスローダからロードされるクラス及び、java.またはjavax.で始まるクラスを除いて 親クラスローダに委譲せずに自身でロードするように構成します。

パラメータ:
parent - 親クラスローダ

ChildFirstClassLoader

public ChildFirstClassLoader(ClassLoader parent,
                             Set<String> includedNames)
インスタンスを構築します。

includedNamesに含まれる名前のクラスのみ、 親クラスローダに委譲せずに自身でロードするように構成します。 ただし、ブートストラップクラスローダからロードされるクラス及び、 java.またはjavax.で始まるクラスを除きます。

パラメータ:
parent - 親クラスローダ
includedNames - 親より先にロードする対象となるクラス名のセット
メソッドの詳細

addClassLoaderListener

public void addClassLoaderListener(ClassLoaderListener listener)
このクラスローダからクラスローダイベントを受け取るためにクラスローダリスナを追加します。

パラメータ:
listener - リスナ

removeClassLoaderListener

public void removeClassLoaderListener(ClassLoaderListener listener)
このクラスローダからクラスローダイベントを受け取らないためにクラスローダリスナを削除します。

パラメータ:
listener - リスナ

fireClassDefinedEvent

protected void fireClassDefinedEvent(String className,
                                     byte[] bytecode,
                                     Class<?> definedClass)
クラスが定義されたことを通知します。

パラメータ:
className - 見つかったクラス名
bytecode - バイトコードが納められたバイト配列
definedClass - 定義されたクラス

doDefineClass

protected Class<?> doDefineClass(String className,
                                 byte[] bytes)
クラス AbstractClassLoader の記述:
クラスを定義します。

定義:
クラス AbstractClassLoader 内の doDefineClass
パラメータ:
className - クラス名
bytes - クラスファイル形式のバイト列
戻り値:
定義されたクラス


Copyright © 2005-2007 The Seasar Foundation. All Rights Reserved.