- すべての実装されたインタフェース:
Serializable
- 直系の既知のサブクラス:
Permissions
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
メソッドをコールする必要があります。 newPermissionCollection
がnull
を返す場合、PermissionCollection
は、(1つはHashtable
、もう1つはVector
などを使用します。)を必要とする任意のタイプのPermissionCollection
に権限を自由に格納できます。 たとえば、Permissions
オブジェクトは、権限オブジェクトをHashtable
に格納するデフォルトのPermissionCollection
実装を使用します。
PermissionCollection
のサブクラス実装では、複数のスレッドから同時にコールできるため、適切に同期する必要があります。 それだけでなく、elements
メソッドで返されるEnumerationsはフェイルファストではありません。 コレクションの列挙中に、コレクションへ変更を加えてはいけません。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明abstract void
add
(Permission permission) アクセス権オブジェクトの現在のコレクションにアクセス権オブジェクトを追加します。abstract Enumeration<Permission>
elements()
コレクション内のすべてのPermissionオブジェクトの列挙を返します。コレクション内のすべてのPermissionオブジェクトのストリームを返します。abstract boolean
implies
(Permission permission) 指定されたアクセス権がこのPermissionCollection
に保持されているPermission
オブジェクトのコレクションによって暗黙的に指定されているかどうかを確認します。boolean
このPermissionCollection
オブジェクトが読取り専用としてマークされている場合は、true
を返します。void
このPermissionCollection
オブジェクトを"読み取り専用"としてマークします。toString()
このPermissionCollection
オブジェクトを説明する文字列を返し、それに含まれるすべての権限に関する情報を提供します。
-
コンストラクタの詳細
-
PermissionCollection
public PermissionCollection()サブクラスが呼び出すためのコンストラクタ。
-
-
メソッドの詳細
-
add
public abstract void add(Permission permission) アクセス権オブジェクトの現在のコレクションにアクセス権オブジェクトを追加します。- パラメータ:
permission
- 追加されるPermissionオブジェクト。- 例外:
SecurityException
- このPermissionCollection
オブジェクトが読取り専用としてマークされている場合IllegalArgumentException
- このPermissionCollection
オブジェクトが同種のコレクションで、権限が正しいタイプでない場合。
-
implies
public abstract boolean implies(Permission permission) 指定されたアクセス権がこのPermissionCollection
に保持されているPermission
オブジェクトのコレクションによって暗黙的に指定されているかどうかを確認します。- パラメータ:
permission
- 比較するPermission
オブジェクト。- 戻り値:
- コレクション内の権限によって"権限"が暗黙的に指定されている場合は
true
、そうでない場合はfalse
。
-
elements
public abstract Enumeration<Permission> elements()コレクション内のすべてのPermissionオブジェクトの列挙を返します。- 戻り値:
- すべてのPermissionsの列挙。
- 関連項目:
-
elementsAsStream
public Stream<Permission> elementsAsStream()コレクション内のすべてのPermissionオブジェクトのストリームを返します。コレクションは、ターミナル・ストリーム操作の実行中に変更されるべきではありません(
add(java.security.Permission)
を参照してください)。 そうしない場合、ストリーム終端操作の結果は保証されません。- 実装要件:
- デフォルトの実装では、ソースが
elements()
の呼び出しから返された列挙型から派生したストリームを作成します。 - 戻り値:
- すべてのパーミッションのストリーム。
- 導入されたバージョン:
- 9
-
setReadOnly
public void setReadOnly()このPermissionCollection
オブジェクトを"読み取り専用"としてマークします。PermissionCollection
オブジェクトが読取り専用としてマークされた後、add
を使用して新しいPermission
オブジェクトを追加することはできません。 -
isReadOnly
public boolean isReadOnly()このPermissionCollection
オブジェクトが読取り専用としてマークされている場合は、true
を返します。 読取り専用の場合、add
を使用して新しいPermission
オブジェクトを追加することはできません。デフォルトでは、オブジェクトは読取り専用ではありません。
setReadOnly
を呼び出すことによって読取り専用に設定できます。- 戻り値:
- この
PermissionCollection
オブジェクトが読取り専用としてマークされている場合はtrue
、それ以外の場合はfalse
。
-
toString
public String toString()このPermissionCollection
オブジェクトを説明する文字列を返し、それに含まれるすべての権限に関する情報を提供します。 書式は次のとおりです。super.toString() ( // enumerate all the Permission // objects and call toString() on them, // one per line.. )
super.toString
は、このオブジェクトのスーパークラスのtoString
メソッド(Object
)へのコールです。 その結果、このコレクションの'このオブジェクトに続くs型名'のハッシュ・コードが生成され、同じ権限が含まれている場合でも、クライアントは異なるPermissionCollection
オブジェクトを区別できます。
-