Java プラットフォーム 1.2

java.security
クラス UnresolvedPermission

java.lang.Object
  |
  +--java.security.Permission
        |
        +--java.security.UnresolvedPermission

public final class UnresolvedPermission
extends Permission
implements Serializable

UnresolvedPermission クラスを使うと、Policy の初期化のときには「解決されなかった」Permissions を保持できます。解決されていないアクセス権では、実際の Permission クラスは、Policy の初期化時にはまだ存在しません (下記を参照)。

Java Runtime のポリシー (さまざまな主体からコードで利用できるアクセス権を指定する) は、Policy オブジェクトによって表現されます。Policy が初期化または再表示されるたびに、Policy によって許可されるすべてのアクセス権に対して適切なクラスの Permission オブジェクトが作成されます。

ポリシー設定によって参照される多くのアクセス権クラスは、ローカルに存在します (つまり、CLASSPATH で見つかる)。このようなアクセス権のオブジェクトは、Policy の初期化時にインスタンスを生成できます。たとえば、FilePermission クラスは CLASSPATH で見つかるので、いつでも java.io.FilePermission のインスタンスを生成できます。

ほかのアクセス権クラスは、Policy の初期化時にはまだ存在しない場合もあります。たとえば、参照されるアクセス権クラスは、あとでロードされる JAR ファイルに入る場合があります。そのような各クラスでは、UnresolvedPermission のインスタンスが生成されます。このため、UnresolvedPermission は基本的に、アクセス権についての情報を保持する「プレースホルダ」です。

続いて、それまでには解決されていない種類だが、そのクラスはロード済みであるアクセス権に対して AccessController.checkPermission をコードで呼び出すと、その種類の未解決のアクセス権が「解決され」ます。つまり、そのような UnresolvedPermission ではそれぞれ、UnresolvedPermission 内の情報に基づいて、適切なクラスの新しいオブジェクトのインスタンスが生成されます。この新しいオブジェクトは、削除される UnresolvedPermission と置き換わります。

関連項目:
Permission, Permissions, PermissionCollection, Policy, 直列化された形式

コンストラクタの概要
UnresolvedPermission(String type, String name, String actions, Certificate[] certs)
          あとで必要になるアクセス権情報を保持する新しい UnresolvedPermission を作成して、アクセス権が解決されるときに、指定されたクラスの Permission を実際に作成します。
 
メソッドの概要
 boolean equals(Object obj)
          2 つの UnresolvedPermission オブジェクトが等しいかどうかを判定します。
 String getActions()
          アクションの標準的な文字列表現を返します。
 int hashCode()
          このオブジェクトのハッシュコード値を返します。
 boolean implies(Permission p)
          未解決のアクセス権に対して常に false を返します。
 PermissionCollection newPermissionCollection()
          UnresolvedPermission オブジェクトを格納するための新しい PermissionCollection オブジェクトを返します。
 String toString()
          この UnresolvedPermission を記述する文字列を返します。
 
クラス java.security.Permission から継承したメソッド
checkGuard, getName
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

UnresolvedPermission

public UnresolvedPermission(String type,
                            String name,
                            String actions,
                            Certificate[] certs)
あとで必要になるアクセス権情報を保持する新しい UnresolvedPermission を作成して、アクセス権が解決されるときに、指定されたクラスの Permission を実際に作成します。
パラメータ:
type - この未解決のアクセス権が解決されるときに作成される Permission クラスのクラス名
name - アクセス権の名前
actions - アクセス権のアクション
certs - アクセス権のクラスの署名で使われた証明書。これは、証明連鎖のリストであり、それぞれの連鎖は署名者の証明書およびその証明書がサポートする証明連鎖 (オプション) から構成される。各連鎖は、下位から上位の順に並べられる (つまり、署名者の証明書が最初で、(ルートの) 証明書発行局が最後)
メソッドの詳細

implies

public boolean implies(Permission p)
未解決のアクセス権に対して常に false を返します。つまり、UnresolvedPermission は別のアクセス権を含むものとは見なされません。
パラメータ:
p - チェック対象のアクセス権
戻り値:
false
オーバーライド:
クラス Permission 内の implies

equals

public boolean equals(Object obj)
2 つの UnresolvedPermission オブジェクトが等しいかどうかを判定します。obj が UnresolvedPermission で、このオブジェクトと同じ型 (クラス) の名前、アクセス権の名前、アクション、証明書を持つかどうかを調べます。
パラメータ:
obj - このオブジェクトと等しいかどうかが判定されるオブジェクト
戻り値:
obj が UnresolvedPermission で、このオブジェクトと同じ型 (クラス) の名前、アクセス権の名前、アクション、証明書を持つ場合は true
オーバーライド:
クラス Permission 内の equals

hashCode

public int hashCode()
このオブジェクトのハッシュコード値を返します。
戻り値:
このオブジェクトのハッシュコード値
オーバーライド:
クラス Permission 内の hashCode

getActions

public String getActions()
アクションの標準的な文字列表現を返します。この文字列表現は、現在は空の文字列 "" です。これは、UnresolvedPermission に対応するアクションがないためです。つまり、この UnresolvedPermission の解決時に作成されるアクセス権のアクションは null 以外になりますが、UnresolvedPermission 自身がなんらかのアクションを持つと見なされることはありません。
戻り値:
空の文字列 ""
オーバーライド:
クラス Permission 内の getActions

toString

public String toString()
この UnresolvedPermission を記述する文字列を返します。規約では、クラス名、アクセス権の名前、およびアクションが、'(unsolved "ClassName" "name" "actions")' という形式で指定されます。
戻り値:
この UnresolvedPermission についての情報
オーバーライド:
クラス Permission 内の toString

newPermissionCollection

public PermissionCollection newPermissionCollection()
UnresolvedPermission オブジェクトを格納するための新しい PermissionCollection オブジェクトを返します。

戻り値:
UnresolvedPermissions を格納するのに適した新しい PermissionCollection オブジェクト
オーバーライド:
クラス Permission 内の newPermissionCollection

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.