- java.lang.Object
-
- java.security.PermissionCollection
-
- すべての実装されたインタフェース:
Serializable
- 直系の既知のサブクラス:
Permissions
public abstract class PermissionCollection extends Object implements Serializable
Permissionオブジェクトのコレクションを表す抽象クラスです。PermissionCollectionを使うと、次の処理を行えます。
-
add
メソッドを使って、コレクションにアクセス権を追加する。 -
implies
メソッドを使って、特定のアクセス権がコレクションに含まれているかどうかを調べる。 -
elements
メソッドを使って、すべてのアクセス権を列挙する。
同じ型の複数のPermissionオブジェクトをグループ化するには、まずその特定の型に対して
newPermissionCollection
メソッドを呼び出す必要があります。 Permissionクラスの場合、このメソッドのデフォルト動作は単純にnullを返すというものです。PermissionCollection.implies
メソッドの呼出し時に正しいセマンティックスを提供できるように特定のPermissionCollectionオブジェクト内にアクセス権を格納する必要がある場合には、Permissionクラスのサブクラスがそのメソッドをオーバーライドします。 このメソッドからnull以外の値が返された場合、そのPermissionCollectionを使用する必要があります。 nullが返された場合、newPermissionCollection
の呼出し元は、指定された種類のアクセス権を、任意のPermissionCollection (Hashtableを使用するもの、Vectorを使用するものなど)に自由に格納できます。Permission.newPermissionCollection
メソッドが返すPermissionCollectionは同種コレクションであり、指定された種類のアクセス権のPermissionオブジェクトだけを格納します。 PermissionCollectionは異種コレクションでもあります。 たとえばPermissionsは、PermissionCollectionsのコレクションを表すPermissionCollectionサブクラスです。 つまりそのメンバーは、それぞれが同種のPermissionCollectionです。 たとえばPermissionsオブジェクトは、すべてのFilePermissionオブジェクトに対してはFilePermissionCollection、すべてのSocketPermissionオブジェクトに対してはSocketPermissionCollectionなどといった対応でコレクションを持ちます。 そのadd
メソッドはアクセス権を適切なコレクションに追加します。Permissionsなどの異種のPermissionCollectionにアクセス権を追加する際、指定されたアクセス権に対するPermissionCollectionがそのPermissionCollection内に存在しなかった場合、そのPermissionCollectionは、そのアクセス権のクラス上で
newPermissionCollection
メソッドを呼び出し、それが特別なPermissionCollectionを必要とするかどうかを確認する必要があります。newPermissionCollection
からnullが返された場合、そのPermissionCollectionは任意の種類のPermissionCollection (Hashtableを使用するもの、Vectorを使用するものなど)にそのアクセス権を格納できます。 たとえば、Permissionsオブジェクトは、アクセス権オブジェクトをHashtableに格納する、デフォルトのPermissionCollection実装を使用します。PermissionCollectionのサブクラス実装は、複数スレッドから同時に呼び出されることを想定しなければならず、そのため、適切に同期を取る必要があります。 それだけでなく、
elements
メソッドで返されるEnumerationsはフェイルファストではありません。 コレクションの列挙中に、コレクションへ変更を加えてはいけません。- 導入されたバージョン:
- 1.2
- 関連項目:
Permission
,Permissions
, 直列化された形式
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 PermissionCollection()
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract void
add(Permission permission)
アクセス権オブジェクトの現在のコレクションにアクセス権オブジェクトを追加します。abstract Enumeration<Permission>
elements()
コレクション内のすべてのPermissionオブジェクトの列挙を返します。Stream<Permission>
elementsAsStream()
コレクション内のすべてのPermissionオブジェクトのストリームを返します。abstract boolean
implies(Permission permission)
指定されたアクセス権が、このPermissionCollectionで保持されるPermissionオブジェクトのコレクションによって包含されるかどうかを判定します。boolean
isReadOnly()
PermissionCollectionオブジェクトが読取り専用としてマークされている場合にtrueを返します。void
setReadOnly()
PermissionCollectionオブジェクトを「読取り専用」としてマークします。String
toString()
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()
-
elementsAsStream
public Stream<Permission> elementsAsStream()
コレクション内のすべてのPermissionオブジェクトのストリームを返します。コレクションは、ターミナル・ストリーム操作の実行中に変更されるべきではありません((
add(java.security.Permission)
を参照してください))。 そうしない場合、ストリーム終端操作の結果は保証されません。- 実装要件:
- デフォルトの実装では、ソースが
elements()
の呼び出しから返された列挙型から派生したストリームを作成します。 - 戻り値:
- すべてのパーミッションのストリーム。
- 導入されたバージョン:
- 9
-
setReadOnly
public void setReadOnly()
PermissionCollectionオブジェクトを「読取り専用」としてマークします。 PermissionCollectionオブジェクトを読取り専用としてマークすると、新規Permissionオブジェクトをadd
でPermissionCollectionに追加することはできません。
-
isReadOnly
public boolean isReadOnly()
PermissionCollectionオブジェクトが読取り専用としてマークされている場合にtrueを返します。 読取り専用の場合、新規Permissionオブジェクトをadd
で追加することはできません。デフォルトでは、オブジェクトは読取り専用ではありません。
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
は、このオブジェクトのスーパー・クラス(つまりObject)のtoString
メソッドの呼出しです。 結果として返されるのは、このPermissionCollectionの種類名のあとにこのオブジェクトのハッシュ・コードが続く文字列なので、複数のPermissionCollectionsオブジェクトが同じアクセス権を保持する場合でも、クライアントは各オブジェクトを区別できます。
-
-