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

クラスProvider

  • すべての実装されたインタフェース:
    Serializable, Cloneable, Map<Object,​Object>
    直系の既知のサブクラス:
    AuthProvider

    public abstract class Provider
    extends Properties
    このクラスは、Java Security APIのプロバイダを表します。プロバイダとは、Javaセキュリティの全体または一部を実装するものです。 プロバイダが実装するのは次のようなサービスです。
    • アルゴリズム(DSA、RSA、またはSHA-256など)。
    • キーの生成、変換、および管理機能(アルゴリズム固有キーなど)

    プロバイダ実装によっては、セキュリティ・トークンとの通信エラーなどの、処理中に復旧できない内部エラーが発生する可能性があります。 そのようなエラーを通知するにはProviderExceptionを使用してください。

    プロバイダは、プラガブル・アーキテクチャを使用するJavaのセキュリティ・サービスを実装するのに使用でき、その下に適合する実装を選択できることに注意してください。

    サービス・タイプProviderはセキュリティ・フレームワーク用に予約されています。 このタイプのサービスをアプリケーションから追加、削除、または変更することはできません。 各Providerオブジェクト内には次の属性が自動的に格納されます。

    Providerオブジェクトに自動的に格納される属性
    Provider.id name String.valueOf(provider.getName())
    Provider.id version String.valueOf(provider.getVersionStr())
    Provider.id info String.valueOf(provider.getInfo())
    Provider.id className provider.getClass().getName()

    各プロバイダには名前とバージョン文字列があります。 プロバイダは、通常、リソース・ディレクトリMETA-INF/services内のjava.security.Providerという名前のファイルで自身を識別します。 セキュリティ・プロバイダは、application class loaderを使用してServiceLoaderメカニズムを介して検索されます。

    プロバイダは、自動的にインストールされ、Security.getProviders()メソッドを介して実行時に利用可能になるように構成することができます。 セキュリティ・プロバイダの構成とインストールの仕組みは実装固有のものです。

    実装上の注意:
    JDK実装は、Javaインストール・ディレクトリのconf/security/java.securityファイルを介してセキュリティ・プロバイダの静的登録をサポートします。 これらのプロバイダは、JDKランタイムによって自動的にインストールされます。特定のタイプのプロバイダ(暗号化サービス・プロバイダ)がどのように動作し、インストールされているかについては、Java暗号化アーキテクチャ・リファレンス・ガイド(JCA)リファレンス・ガイドの「プロバイダ・クラス」を参照してください。
    導入されたバージョン:
    1.1
    関連項目:
    直列化された形式
    • ネストされたクラスのサマリー

      ネストされたクラス 
      修飾子と型 クラス 説明
      static class  Provider.Service
      特定のセキュリティ・サービスを記述したものです。
    • フィールドのサマリー

    • コンストラクタのサマリー

      コンストラクタ 
      修飾子 コンストラクタ 説明
      protected Provider​(String name, double version, String info)
      非推奨。
      代わりにProvider(String, String, String)を使用してください。
      protected Provider​(String name, String versionStr, String info)
      指定された名前、バージョン文字列、および情報を持つプロバイダを構築します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 具象メソッド 非推奨のメソッド 
      修飾子と型 メソッド 説明
      void clear()
      このプロバイダをクリアして、プロバイダが実装した機能を検索するときに使うプロパティを含まないようにします。
      Object compute​(Object key, BiFunction<? super Object,​? super Object,​? extends Object> remappingFunction)
      指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull)。
      Object computeIfAbsent​(Object key, Function<? super Object,​? extends Object> mappingFunction)
      指定されたキーがまだ値に関連付けられていない(またはnullにマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、nullでない場合はそれをこのマップに入力します。
      Object computeIfPresent​(Object key, BiFunction<? super Object,​? super Object,​? extends Object> remappingFunction)
      指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。
      Provider configure​(String configArg)
      指定された構成引数をこのプロバイダ・インスタンスに適用し、構成されたプロバイダを返します。
      Set<Map.Entry<Object,​Object>> entrySet()
      このプロバイダに含まれるプロパティ・エントリの変更不可能なSetのビューを返します。
      void forEach​(BiConsumer<? super Object,​? super Object> action)
      このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。
      String getInfo()
      プロバイダとそのサービス内容を、人間が読める形式で返します。
      String getName()
      このプロバイダの名前を返します。
      Object getOrDefault​(Object key, Object defaultValue)
      指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValueを返します。
      Provider.Service getService​(String type, String algorithm)
      指定されたタイプの指定されたアルゴリズムまたは別名に対するこのProviderの実装を記述したサービスを取得します。
      Set<Provider.Service> getServices()
      このProviderがサポートするすべてのサービスの変更不可能なSetを取得します。
      double getVersion()
      非推奨。
      代わりにgetVersionStr()を使用してください。
      String getVersionStr()
      このプロバイダのバージョン文字列を返します。
      boolean isConfigured()
      このプロバイダ・インスタンスが構成されているかどうかを確認します。
      Set<Object> keySet()
      このプロバイダに含まれるプロパティ・キーの変更不可能なSetのビューを返します。
      void load​(InputStream inStream)
      入力ストリームからキーと要素が対になったプロパティ・リストを読み込みます。
      Object merge​(Object key, Object value, BiFunction<? super Object,​? super Object,​? extends Object> remappingFunction)
      指定されたキーがまだ値と関連付けられていないかnullと関連付けられている場合、指定された値に関連付けます。
      Object put​(Object key, Object value)
      keyプロパティが、指定されたvalueを持つように設定します。
      void putAll​(Map<?,​?> t)
      指定されたMapからこのプロバイダへすべてのマッピングをコピーします。
      Object putIfAbsent​(Object key, Object value)
      指定されたキーがまだ値に関連付けられていない(または、nullにマップされている)場合は、それを指定された値に関連付けてnullを返します。それ以外の場合は、現在の値を返します。
      protected void putService​(Provider.Service s)
      サービスを追加します。
      Object remove​(Object key)
      keyプロパティとそれに対応するvalueを削除します。
      boolean remove​(Object key, Object value)
      指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。
      protected void removeService​(Provider.Service s)
      以前にputService()を使用して追加されたサービスを削除します。
      Object replace​(Object key, Object value)
      指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。
      boolean replace​(Object key, Object oldValue, Object newValue)
      指定されたキーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。
      void replaceAll​(BiFunction<? super Object,​? super Object,​? extends Object> function)
      すべてのエントリが処理されるか、または関数が例外をスローするまで、エントリ・セット・イテレータによってエントリが返される順に、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。
      String toString()
      このプロバイダの名前とバージョン文字列を返します。
      Collection<Object> values()
      このプロバイダに含まれるプロパティ値の変更不可能なCollectionのビューを返します。
    • コンストラクタの詳細

      • Provider

        @Deprecated(since="9")
        protected Provider​(String name,
                           double version,
                           String info)
        非推奨。
        代わりにProvider(String, String, String)を使用してください。
        指定された名前、バージョン番号、および情報を使用してプロバイダを構築します。 このコンストラクタを呼び出すことは、nameの名前、Double.toString(version)、およびinfoを使用してProvider(String, String, String)を呼び出すことと同じです。
        パラメータ:
        name - プロバイダの名前。
        version - プロバイダのバージョン番号。
        info - プロバイダとそのサービスの記述。
      • Provider

        protected Provider​(String name,
                           String versionStr,
                           String info)
        指定された名前、バージョン文字列、および情報を持つプロバイダを構築します。

        バージョン文字列には、'+'、'-'のいずれかの文字で区切られた別の情報が後に続くバージョン番号が含まれます。 バージョン番号の形式は次のとおりです:

             ^[0-9]+(\.[0-9]+)*
         

        ダブルでバージョン番号を返すために、2つ以上のコンポーネント(上記で定義した'.'で区切られます)がある場合、最初の2つのコンポーネントだけが保持されます。 結果の文字列はDouble.valueOf(String)に渡され、バージョン番号、すなわちgetVersion()が生成されます。

        変換に失敗した場合は、値0が使用されます。

        パラメータ:
        name - プロバイダの名前。
        versionStr - プロバイダのバージョン文字列。
        info - プロバイダとそのサービスの記述。
        導入されたバージョン:
        9
    • メソッドの詳細

      • configure

        public Provider configure​(String configArg)
        指定された構成引数をこのプロバイダ・インスタンスに適用し、構成されたプロバイダを返します。 このプロバイダをインプレースで構成できない場合、新しいプロバイダが作成されて返されることに注意してください。 したがって、呼び出し元は返されたプロバイダを常に使用する必要があります。
        実装要件:
        デフォルト実装はUnsupportedOperationExceptionをスローします。 サブクラスは、構成引数がサポートされている場合にのみ、このメソッドをオーバーライドする必要があります。
        パラメータ:
        configArg - このプロバイダを構成するための構成情報。
        戻り値:
        提供された構成引数で構成されたプロバイダ。
        例外:
        UnsupportedOperationException - 構成引数がサポートされていない場合。
        NullPointerException - 指定された構成引数がnullの場合。
        InvalidParameterException - 指定された構成引数が無効な場合。
        導入されたバージョン:
        9
      • isConfigured

        public boolean isConfigured()
        このプロバイダ・インスタンスが構成されているかどうかを確認します。
        実装要件:
        デフォルトの実装ではtrueを返します。 プロバイダ・インスタンスが構築後に明示的なconfigureコールを必要とする場合、サブクラスはこのメソッドをオーバーライドする必要があります。
        戻り値:
        詳細な構成が必要ない場合はtrue、そうでない場合はfalse。
        導入されたバージョン:
        9
      • getName

        public String getName()
        このプロバイダの名前を返します。
        戻り値:
        このプロバイダの名前。
      • getVersion

        @Deprecated(since="9")
        public double getVersion()
        非推奨。
        代わりにgetVersionStr()を使用してください。
        このプロバイダのバージョン番号を返します。
        戻り値:
        このプロバイダのバージョン番号。
      • getVersionStr

        public String getVersionStr()
        このプロバイダのバージョン文字列を返します。
        戻り値:
        このプロバイダのバージョン文字列。
        導入されたバージョン:
        9
      • getInfo

        public String getInfo()
        プロバイダとそのサービス内容を、人間が読める形式で返します。 関連するリンクを持つHTMLページを返すこともあります。
        戻り値:
        プロバイダとそのサービスの記述。
      • toString

        public String toString()
        このプロバイダの名前とバージョン文字列を返します。
        オーバーライド:
        クラスHashtable<Object,​Object>toString
        戻り値:
        このプロバイダの名前とバージョン文字列を含む文字列。
      • clear

        public void clear()
        このプロバイダをクリアして、プロバイダが実装した機能を検索するときに使うプロパティを含まないようにします。

        セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"clearProviderProperties."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダをクリアしてもよいかどうかが確認されます。

        定義:
        インタフェースMap<Object,​Object>内のclear
        オーバーライド:
        クラスHashtable<Object,​Object>clear
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがこのプロバイダをクリアするアクセスを許可しない場合
        導入されたバージョン:
        1.2
      • load

        public void load​(InputStream inStream)
                  throws IOException
        入力ストリームからキーと要素が対になったプロパティ・リストを読み込みます。
        オーバーライド:
        load、クラス: Properties
        パラメータ:
        inStream - 入力ストリーム。
        例外:
        IOException - 入力ストリームからの読込み中にエラーが発生した場合。
        関連項目:
        Properties.load(java.io.Reader)
      • putAll

        public void putAll​(Map<?,​?> t)
        指定されたMapからこのプロバイダへすべてのマッピングをコピーします。 これらのマッピングは、指定されたMap内に存在するすべてのキーに対応するプロパティを、このプロバイダが持っているプロパティと置き換えます。
        定義:
        インタフェースMap<Object,​Object>内のputAll
        オーバーライド:
        クラスHashtable<Object,​Object>putAll
        パラメータ:
        t - このマップに格納されるマッピング
        導入されたバージョン:
        1.2
      • entrySet

        public Set<Map.Entry<Object,​Object>> entrySet()
        このプロバイダに含まれるプロパティ・エントリの変更不可能なSetのビューを返します。
        定義:
        インタフェースMap<Object,​Object>内のentrySet
        オーバーライド:
        クラスHashtable<Object,​Object>entrySet
        戻り値:
        マップ内に保持されているマッピングのセット・ビュー
        導入されたバージョン:
        1.2
        関連項目:
        Map.Entry
      • keySet

        public Set<Object> keySet()
        このプロバイダに含まれるプロパティ・キーの変更不可能なSetのビューを返します。
        定義:
        インタフェースMap<Object,​Object>内のkeySet
        オーバーライド:
        クラスHashtable<Object,​Object>keySet
        戻り値:
        マップに含まれているキーのセット・ビュー
        導入されたバージョン:
        1.2
      • values

        public Collection<Object> values()
        このプロバイダに含まれるプロパティ値の変更不可能なCollectionのビューを返します。
        定義:
        インタフェースMap<Object,​Object>内のvalues
        オーバーライド:
        クラスHashtable<Object,​Object>values
        戻り値:
        マップ内に含まれている値のコレクション・ビュー
        導入されたバージョン:
        1.2
      • put

        public Object put​(Object key,
                          Object value)
        keyプロパティが、指定されたvalueを持つように設定します。

        セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"putProviderProperty."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値を設定してもよいかどうかが確認されます。

        定義:
        インタフェースMap<Object,​Object>内のput
        オーバーライド:
        クラスHashtable<Object,​Object>put
        パラメータ:
        key - ハッシュ表キー
        value - 値
        戻り値:
        ハッシュ表の指定されたキーの前の値。それがない場合はnull
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがプロパティ値を設定するアクセスを許可しない場合。
        導入されたバージョン:
        1.2
        関連項目:
        Object.equals(Object), Hashtable.get(Object)
      • putIfAbsent

        public Object putIfAbsent​(Object key,
                                  Object value)
        指定されたキーがまだ値に関連付けられていない(または、nullにマップされている)場合は、それを指定された値に関連付けてnullを返します。それ以外の場合は、現在の値を返します。

        セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"putProviderProperty."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値を設定してもよいかどうかが確認されます。

        パラメータ:
        key - 指定された値が関連付けられるキー
        value - 指定された鍵に関連付けられる値
        戻り値:
        指定されたキーに関連付けられた以前の値。キーのマッピングがなかった場合はnull (また、実装がnull値をサポートしている場合、戻り値nullは、以前にマップでキーとnullが関連付けられていたことを示す場合もある。)
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがプロパティ値を設定するアクセスを許可しない場合。
        導入されたバージョン:
        1.8
      • remove

        public Object remove​(Object key)
        keyプロパティとそれに対応するvalueを削除します。

        セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"removeProviderProperty."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティを削除してもよいかどうかが確認されます。

        定義:
        インタフェースMap<Object,​Object>内のremove
        オーバーライド:
        クラスHashtable<Object,​Object>remove
        パラメータ:
        key - 削除するキー
        戻り値:
        ハッシュ表でそのキーにマップされている値。マップされている値がない場合はnull
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがこのプロバイダのプロパティを削除するアクセスを許可しない場合。
        導入されたバージョン:
        1.2
      • remove

        public boolean remove​(Object key,
                              Object value)
        指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。

        セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"removeProviderProperty."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティを削除してもよいかどうかが確認されます。

        パラメータ:
        key - 指定された値が関連付けられるキー
        value - 指定されたキーに関連付けられていると予想される値
        戻り値:
        値が削除された場合はtrue
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがこのプロバイダのプロパティを削除するアクセスを許可しない場合。
        導入されたバージョン:
        1.8
      • replace

        public boolean replace​(Object key,
                               Object oldValue,
                               Object newValue)
        指定されたキーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。

        セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"putProviderProperty."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値を設定してもよいかどうかが確認されます。

        パラメータ:
        key - 指定された値が関連付けられるキー
        oldValue - 指定されたキーに関連付けられていると予想される値
        newValue - 指定されたキーに関連付けられる値
        戻り値:
        値が置換された場合はtrue
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがプロパティ値を設定するアクセスを許可しない場合。
        導入されたバージョン:
        1.8
      • replace

        public Object replace​(Object key,
                              Object value)
        指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。

        セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"putProviderProperty."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値を設定してもよいかどうかが確認されます。

        パラメータ:
        key - 指定された値が関連付けられるキー
        value - 指定された鍵に関連付けられる値
        戻り値:
        指定されたキーに関連付けられた以前の値。キーのマッピングがなかった場合はnull (また、実装がnull値をサポートしている場合、戻り値nullは、以前にマップでキーとnullが関連付けられていたことを示す場合もある。)
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがプロパティ値を設定するアクセスを許可しない場合。
        導入されたバージョン:
        1.8
      • replaceAll

        public void replaceAll​(BiFunction<? super Object,​? super Object,​? extends Object> function)
        すべてのエントリが処理されるか、または関数が例外をスローするまで、エントリ・セット・イテレータによってエントリが返される順に、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。

        セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"putProviderProperty."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値を設定してもよいかどうかが確認されます。

        パラメータ:
        function - 各エントリに適用する関数
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがプロパティ値を設定するアクセスを許可しない場合。
        導入されたバージョン:
        1.8
      • compute

        public Object compute​(Object key,
                              BiFunction<? super Object,​? super Object,​? extends Object> remappingFunction)
        指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull)。

        セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"putProviderProperty."+nameおよび"removeProviderProperty."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値の設定とこのプロバイダのプロパティの削除を行ってもよいかどうかが確認されます。

        定義:
        インタフェースMap<Object,​Object>内のcompute
        オーバーライド:
        クラスHashtable<Object,​Object>compute
        パラメータ:
        key - 指定された値が関連付けられるキー
        remappingFunction - 値をコンピュートするための再マップ関数
        戻り値:
        指定されたキーに関連付けられる新しい値。存在しない場合はnull
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがプロパティ値の設定またはプロパティの削除を行うアクセスを許可しない場合。
        導入されたバージョン:
        1.8
      • computeIfAbsent

        public Object computeIfAbsent​(Object key,
                                      Function<? super Object,​? extends Object> mappingFunction)
        指定されたキーがまだ値に関連付けられていない(またはnullにマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、nullでない場合はそれをこのマップに入力します。

        セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"putProviderProperty."+nameおよび"removeProviderProperty."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値の設定とこのプロバイダのプロパティの削除を行ってもよいかどうかが確認されます。

        定義:
        インタフェースMap<Object,​Object>内のcomputeIfAbsent
        オーバーライド:
        クラスHashtable<Object,​Object>computeIfAbsent
        パラメータ:
        key - 指定された値が関連付けられるキー
        mappingFunction - 値をコンピュートするマッピング関数
        戻り値:
        指定されたキーに関連付けられている現在の(既存の、または計算された)値。計算された値がnullである場合はnull
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがプロパティ値の設定およびプロパティの削除を行うアクセスを許可しない場合。
        導入されたバージョン:
        1.8
      • computeIfPresent

        public Object computeIfPresent​(Object key,
                                       BiFunction<? super Object,​? super Object,​? extends Object> remappingFunction)
        指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。

        セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"putProviderProperty."+nameおよび"removeProviderProperty."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値の設定とこのプロバイダのプロパティの削除を行ってもよいかどうかが確認されます。

        定義:
        インタフェースMap<Object,​Object>内のcomputeIfPresent
        オーバーライド:
        クラスHashtable<Object,​Object>computeIfPresent
        パラメータ:
        key - 指定された値が関連付けられるキー
        remappingFunction - 値をコンピュートするための再マップ関数
        戻り値:
        指定されたキーに関連付けられる新しい値。存在しない場合はnull
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがプロパティ値の設定またはプロパティの削除を行うアクセスを許可しない場合。
        導入されたバージョン:
        1.8
      • merge

        public Object merge​(Object key,
                            Object value,
                            BiFunction<? super Object,​? super Object,​? extends Object> remappingFunction)
        指定されたキーがまだ値と関連付けられていないかnullと関連付けられている場合、指定された値に関連付けます。 それ以外の場合は、指定された再マッピング関数の結果で値を置換し、結果がnullの場合は削除します。 このメソッドは、1つのキーに対する複数のマップされた値を結合するときに使用できます。

        セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"putProviderProperty."+nameおよび"removeProviderProperty."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値の設定とこのプロバイダのプロパティの削除を行ってもよいかどうかが確認されます。

        定義:
        インタフェースMap<Object,​Object>内のmerge
        オーバーライド:
        クラスHashtable<Object,​Object>merge
        パラメータ:
        key - 結果値が関連付けられるキー
        value - キーに関連付けられた既存の値にマージされるnull以外の値。既存の値がない場合、またはキーにnull値が関連付けられている場合は、キーに関連付けられるnull以外の値
        remappingFunction - 存在する場合に値を再計算するための再マッピング関数
        戻り値:
        指定されたキーに関連付けられた新しい値。キーに値が関連付けられなかった場合はnull
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがプロパティ値の設定またはプロパティの削除を行うアクセスを許可しない場合。
        導入されたバージョン:
        1.8
      • getOrDefault

        public Object getOrDefault​(Object key,
                                   Object defaultValue)
        インタフェースからコピーされた説明: Map
        指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValueを返します。
        パラメータ:
        key - 関連付けられた値が返される鍵
        defaultValue - キーのデフォルト・マッピング
        戻り値:
        指定されたキーがマップされている値。このマップにそのキーのマッピングが含まれていない場合はdefaultValue
        導入されたバージョン:
        1.8
      • forEach

        public void forEach​(BiConsumer<? super Object,​? super Object> action)
        インタフェースからコピーされた説明: Map
        このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。 実装クラスで指定されない場合は、エントリ・セットの反復の順序でアクションが実行されます(反復順序が指定されている場合)。 アクションによってスローされた例外は、呼出し側に中継されます。
        パラメータ:
        action - 各エントリに対して実行されるアクション
        導入されたバージョン:
        1.8
      • getService

        public Provider.Service getService​(String type,
                                           String algorithm)
        指定されたタイプの指定されたアルゴリズムまたは別名に対するこのProviderの実装を記述したサービスを取得します。 そのような実装が存在しない場合、このメソッドはnullを返します。 条件に一致するサービスとして、putService()を使用してこのプロバイダに追加されたものと、put()経由で追加されたものの2つが見つかった場合、putService()経由で追加されたサービスが返されます。
        パラメータ:
        type - 要求されるserviceのタイプ(MessageDigestなど)
        algorithm - 要求されるサービスのアルゴリズム名または別名(SHA-1など)。大文字と小文字は区別される
        戻り値:
        このProviderの条件に一致するサービスを記述したサービス。そのようなサービスが存在しない場合はnull
        例外:
        NullPointerException - type、algorithmのいずれかがnullである場合
        導入されたバージョン:
        1.5
      • getServices

        public Set<Provider.Service> getServices()
        このProviderがサポートするすべてのサービスの変更不可能なSetを取得します。
        戻り値:
        このProviderがサポートするすべてのサービスの変更不可能なSet
        導入されたバージョン:
        1.5
      • putService

        protected void putService​(Provider.Service s)
        サービスを追加します。 同じタイプとアルゴリズム名を持つサービスがすでに存在しており、それがputService()を使用して追加されていた場合、そのサービスは新しいサービスで置換されます。 このメソッドは、このサービスに関する情報を、プロバイダのHashtable値に、「Java暗号化アーキテクチャ(JCA)リファレンス・ガイド」で説明されている形式で格納します。

        また、セキュリティ・マネージャが存在する場合、セキュリティ・マネージャのcheckSecurityAccessメソッドが引数として"putProviderProperty."+name (nameはプロバイダの名前)という文字列を指定して呼び出され、このプロバイダのプロパティ値を設定してもよいかどうかを確認します。 checkSecurityAccessのデフォルトの実装が使用される(つまり、そのメソッドがオーバーライドされない)場合は、これにより、セキュリティ・マネージャのcheckPermissionメソッドがSecurityPermission("putProviderProperty."+name)アクセス権で呼び出されます。

        パラメータ:
        s - 追加するサービス
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがプロパティ値を設定するアクセスを許可しない場合。
        NullPointerException - sがnullの場合
        導入されたバージョン:
        1.5
      • removeService

        protected void removeService​(Provider.Service s)
        以前にputService()を使用して追加されたサービスを削除します。 指定されたサービスは、このプロバイダから削除されます。 これはgetService()を呼び出しても返されなくなり、このプロバイダのHashtableからその情報が削除されます。

        また、セキュリティ・マネージャが存在する場合、セキュリティ・マネージャのcheckSecurityAccessメソッドが文字列"removeProviderProperty."+name (nameはプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値を削除してもよいかどうかが確認されます。 checkSecurityAccessのデフォルトの実装が使用される(つまり、そのメソッドがオーバーライドされない)場合は、これにより、セキュリティ・マネージャのcheckPermissionメソッドがSecurityPermission("removeProviderProperty."+name)アクセス権で呼び出されます。

        パラメータ:
        s - 削除されるサービス
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)メソッドがこのプロバイダのプロパティを削除するアクセスを許可しない場合。
        NullPointerException - sがnullの場合
        導入されたバージョン:
        1.5