| 
 | JavaTM 2 Platform Std. Ed. v1.4.0 | ||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
DomainCombiner では、動的に現行の AccessControlContext に関連した ProtectionDomains を変更する手段を提供します。
DomainCombiner は、AccessControlContext の適切なコンストラクタにパラメータとして渡されます。次に、この新たに構築されたコンテキストは、AccessController.doPrivileged(..., context) メソッドに渡されて、指定されたコンテキストとそれに関連した DomainCombiner を現行の実行 Thread にバインドします。その後、AccessController.getContext または AccessController.checkPermission を呼び出すと、DomainCombiner.combine が呼び出されます。
combine メソッドには引数が 2 つあります。第 1 引数は、現在実行中の Thread の、AccessController.doPrivileged を最後に呼び出してからの、ProtectionDomains の配列を表します。doPrivileged の呼び出しがない場合、第 1 引数には実行中の Thread からのすべての ProtectionDomains が含まれます。第 2 引数は継承された ProtectionDomains の配列を表します。この引数は null の場合もあります。ProtectionDomains は親 Thread か、特権付きコンテキストから継承されます。doPrivileged の呼び出しがない場合、第 2 引数に親 Thread から継承された ProtectionDomains が含まれます。doPrivileged が 1 回以上呼び出され、最新の呼び出しが doPrivileged(action, context) である場合は、第 2 引数に特権付きコンテキストからの ProtectDomains が含まれます。最新の呼び出しが doPrivileged(action) である場合、特権付きコンテキストは存在せず、第 2 引数は null になります。
combine メソッドでは、ProtectionDomains の 2 通りの入力配列を調べ、変更された ProtectionDomains を含む配置を 1 つ返します。最も単純な場合、combine メソッドは、2 つのスタックを 1 つに統合します。複雑になると、このメソッドは、ProtectionDomains の変更済みスタックを返します。変更には、新規 ProtectionDomains の追加、特定の ProtectionDomains の削除、または簡単に変更された既存の ProtectionDomains があります。ProtectionDomains に対する再順序付けとその他の最適化もまた許可されます。通常、combine メソッドは、DomainCombiner でカプセル化された情報に関するメソッドの変更を基にします。
AccessController.getContext メソッドは、組み合わされた ProtectionDomains のスタックを DomainCombiner から受け取った後、DomainCombiner と、組み合わされた ProtectionDomains の 2 つを持つ新規 AccessControlContext を返します。
AccessController, 
AccessControlContext| メソッドの概要 | |
|  ProtectionDomain[] | combine(ProtectionDomain[] currentDomains,
        ProtectionDomain[] assignedDomains)指定された ProtectionDomains を変更または更新します。 | 
| メソッドの詳細 | 
public ProtectionDomain[] combine(ProtectionDomain[] currentDomains,
                                  ProtectionDomain[] assignedDomains)
currentDomains - 実行中の Thread に関連した ProtectionDomains は、最終特権付き ProtectionDomain によって異なる。ProtectionDomains は、最後に実行した ProtectionDomain を配列の先頭にして、実行された順で列挙される。実行中の Thread が関連した ProtectionDomains を持たない場合、このパラメータは null の可能性がある
assignedDomains - 継承された ProtectionDomains の配列。ProtectionDomains は親 Thread か、特権付きの AccessControlContext から継承している。継承された ProtectionDomains がない場合、このパラメータは null
null| 
 | JavaTM 2 Platform Std. Ed. v1.4.0 | ||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
 Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
 Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A.  All Rights Reserved.