クラスPermissionCollection
- すべての実装されたインタフェース:
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 voidadd(Permission permission) アクセス権オブジェクトの現在のコレクションにアクセス権オブジェクトを追 します。abstract Enumeration<Permission> elements()コレクション内のすべてのPermissionオブジェクトの列挙を返します。コレクション内のすべてのPermissionオブジェクトのストリー を返します。abstract booleanimplies(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オブジェクトを区別できます。
-