モジュール 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
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    サブクラスが呼び出すためのコンストラクタ。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract void
    add(Permission permission)
    アクセス権オブジェクトの現在のコレクションにアクセス権オブジェクトを追加します。
    コレクション内のすべてのPermissionオブジェクトの列挙を返します。
    コレクション内のすべてのPermissionオブジェクトのストリームを返します。
    abstract boolean
    implies(Permission permission)
    指定されたアクセス権がこのPermissionCollectionに保持されているPermissionオブジェクトのコレクションによって暗黙的に指定されているかどうかを確認します。
    boolean
    このPermissionCollectionオブジェクトが読取り専用としてマークされている場合は、trueを返します。
    void
    このPermissionCollectionオブジェクトを"読み取り専用"としてマークします。
    このPermissionCollectionオブジェクトを説明する文字列を返し、それに含まれるすべての権限に関する情報を提供します。

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • コンストラクタの詳細

    • 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オブジェクトを区別できます。
      オーバーライド:
      toString、クラスObject
      戻り値:
      前述のように、このPermissionCollectionオブジェクトに関する情報。