モジュール jdk.dynalink
パッケージ jdk.dynalink

クラスNamedOperation

java.lang.Object
jdk.dynalink.NamedOperation
すべての実装されたインタフェース:
Operation

public final class NamedOperation
extends Object
implements Operation
名前と別の操作を関連付ける操作。 通常、固定名にバインドするために通常は名前またはインデックスを使用する操作で使用されます。 次に例を示します。
     new NamedOperation(
         new NamespaceOperation(
             StandardOperation.GET,
             StandardNamespace.PROPERTY),
         "color")
 
、適用されるオブジェクトに対して"color"という名前のプロパティを取得するための名前付き操作になります。
     new NamedOperation(
         new NamespaceOperation(
             StandardOperation.GET,
             StandardNamespace.ELEMENT),
         3)
 
(このコンテキストの"name"は、"address"に似ており、テキスト名、数値インデックス、またはリンカーが理解できる他の種類のアドレッシングの両方を網羅しています)に適用されるコレクションからインデックス3の要素を取得するための名前付き操作になります。 このような場合、操作のコール・サイトの予想されるシグネチャは変更され、nameパラメータは含まれなくなります。 具体的には、すべてのStandardOperationメンバーのドキュメントは、名前付き操作に組み込まれてどのように影響されるかを記述します。

NamedOperationは直接構築できますが、代わりにOperation.named(Object)ファクトリ・メソッドを使用すると便利です:

    StandardOperation.GET
        .withNamespace(StandardNamespace.ELEMENT),
        .named(3)
     )
 

NamedOperationNamespaceOperationをベースにして最も頻繁に使用されますが、ベースとしても他の操作を行うことができます(別の名前付き操作を除いて)。 具体的には、StandardOperation.CALLStandardOperation.NEWの両方をNamedOperationと直接使用できます。 これらの操作のためのコントラクトは、それらが名前付き操作として使用されるとき、その名前は診断メッセージにのみ使用され、通常、呼び出し先を取得したソース式(例えばStandardOperation.CALL.named("window.open"))のテキスト表現を含みます。

  • コンストラクタの詳細

    • NamedOperation

      public NamedOperation​(Operation baseOperation, Object name)
      新しい名前付き操作を作成します。
      パラメータ:
      baseOperation - 名前に関連付けられた基本操作。
      name - ベース操作に関連付けられた名前。 名前は必ずしも文字列ではなく、任意のオブジェクトであることに注意してください。 名前はアドレッシングに使用されるので、配列やリストなどのインデックスとして使用される場合はIntegerになります。
      例外:
      NullPointerException - baseOperationまたはnameのいずれかがnullの場合。
      IllegalArgumentException - baseOperation自体がNamedOperationの場合。
  • メソッドの詳細

    • getBaseOperation

      public Operation getBaseOperation()
      この名前付き操作の基本操作を返します。
      戻り値:
      この名前付き操作の基本操作。
    • getName

      public Object getName()
      この名前付き操作の名前を返します。
      戻り値:
      この名前付き操作の名前。
    • changeName

      public final NamedOperation changeName​(String newName)
      この名前と異なる名前の操作を検索または作成します。
      パラメータ:
      newName - 古い名前を新しい名前に置き換えます。
      戻り値:
      名前が変更された名前付き操作。
      例外:
      NullPointerException - 名前がnullの場合。
    • equals

      public boolean equals​(Object obj)
      この名前付き操作を別のオブジェクトと比較します。 他のオブジェクトが名前付き操作であり、その基本操作と名前が等しい場合はtrueを返します。
      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      obj - 比較対象の参照オブジェクト。
      戻り値:
      このオブジェクトがobj引数と同じである場合はtrue、それ以外の場合はfalse
      関連項目:
      Object.hashCode()HashMap
    • hashCode

      public int hashCode()
      この名前付き操作のハッシュ・コードを返します。 baseOperation.hashCode() + 31 * name.hashCode()と等しくなるように定義されています。
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
      Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
    • toString

      public String toString()
      この名前付き操作の文字列表現を返します。 baseOperation.toString() + ":" + name.toString()と等しくなるように定義されています。
      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      このオブジェクトの文字列表現
    • getBaseOperation

      public static Operation getBaseOperation​(Operation op)
      渡された操作が名前付き操作の場合はgetBaseOperation()を返し、そうでない場合はその操作をそのまま返します。
      パラメータ:
      op - 操作
      戻り値:
      渡された操作の基本操作。
    • getName

      public static Object getName​(Operation op)
      渡された操作が名前付き操作の場合はgetName()を返し、そうでない場合はnullを返します。 名前付き操作オブジェクトはnull名を持つことはできません。したがって、nullを返すことは、渡された操作が実際には名前付き操作ではないことを示します。
      パラメータ:
      op - 操作
      戻り値:
      渡された操作の名前、または名前付き操作でない場合はnull。