モジュール java.base
パッケージ java.security

クラスPermissionCollection

java.lang.Object
java.security.PermissionCollection
すべての実装されたインタフェース:
Serializable
直系の既知のサブクラス:
Permissions

public abstract class PermissionCollection extends Object implements Serializable
Permissionオブジェクトのコレクションを表す抽象クラスです。

PermissionCollectionを使用すると、次のことができます:

  • addメソッドを使って、コレクションにアクセス権を追加する。
  • impliesメソッドを使って、特定のアクセス権がコレクションに含まれているかどうかを調べる。
  • elementsメソッドを使って、すべてのアクセス権を列挙する。

同じタイプの複数のPermissionオブジェクトをグループ化することが望ましい場合、その特定のタイプのPermissionオブジェクトのnewPermissionCollectionメソッドを最初にコールする必要があります。 デフォルトの動作(Permissionクラスから)は、単にnullを返すことです。 クラスPermissionのサブクラスは、PermissionCollection.impliesメソッドが呼び出されたときに正しいセマンティクスを提供するために、特定のPermissionCollectionオブジェクトに権限を格納する必要がある場合、メソッドをオーバーライドします。 null以外の値が返された場合、そのPermissionCollectionを使用する必要があります。 nullが返された場合、newPermissionCollectionのコール元は、(Hashtableを使用するもの、Vectorを使用するものなど。)を選択する任意のPermissionCollectionに、指定されたタイプの権限を自由に格納できます。

Permission.newPermissionCollectionメソッドによって返されるコレクションは同種のコレクションで、特定の権限タイプのPermissionオブジェクトのみを格納します。 PermissionCollectionは異種の場合もあります。 たとえば、Permissionsは、PermissionCollectionオブジェクトのコレクションを表すPermissionCollectionサブクラスです。 つまり、各メンバーは同種のPermissionCollectionです。 たとえば、Permissionオブジェクトには、すべてのFilePermissionオブジェクトに対してFilePermissionCollection、すべてのSocketPermissionオブジェクトに対してSocketPermissionCollectionなどが含まれます。 そのaddメソッドはアクセス権を適切なコレクションに追加します。

Permissionsなどの異種のPermissionCollectionに権限が追加され、PermissionCollectionが'tには、指定された権限のPermissionCollectionがまだ含まれています'型である場合、PermissionCollectionは、特別なPermissionCollectionが必要かどうかを確認するために、権限のクラスのnewPermissionCollectionメソッドをコールする必要があります。 newPermissionCollectionnullを返す場合、PermissionCollectionは、(1つはHashtable、もう1つはVectorなどを使用します。)を必要とする任意のタイプのPermissionCollectionに権限を自由に格納できます。 たとえば、Permissionsオブジェクトは、権限オブジェクトをHashtableに格納するデフォルトのPermissionCollection実装を使用します。

PermissionCollectionのサブクラス実装では、複数のスレッドから同時にコールできるため、適切に同期する必要があります。 それだけでなく、elementsメソッドで返されるEnumerationsはフェイルファストではありません。 コレクションの列挙中に、コレクションへ変更を加えてはいけません。

導入されたバージョン:
1.2
関連項目: