Operation (Java SE 13 & JDK 13 )
Description: declaration: module: jdk.dynalink, package: jdk.dynalink, interface: Operation
Keywords: jdk.dynalink.Operation interface

Module jdk.dynalink
Package jdk.dynalink

# Interface Operation

All Known Implementing Classes:
  `NamedOperation`, `NamespaceOperation`, `StandardOperation`

    public interface Operation

An object that describes a dynamic operation. Dynalink defines a set of standard operations with the `StandardOperation` class, as well as a way to express the target `namespace(s)` of an operation on an object using `NamespaceOperation` and finally a way to attach a fixed target name to an operation using `NamedOperation`. When presenting examples in this documentation, we will refer to standard operations using their name (e.g. `GET`), to namespace operations by separating their base operation with a colon from their namespace (e.g. `GET:PROPERTY`), or in case of multiple namespaces we will further separate those with the vertical line character (e.g. `GET:PROPERTY|ELEMENT`), and finally we will refer to named operations by separating the base operation and the name with the colon character (e.g. `GET:PROPERTY|ELEMENT:color`).

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `default NamedOperation` | `named​(Object name)` | Returns a `NamedOperation` using this operation as its base.
  `default NamespaceOperation` | `withNamespace​(Namespace namespace)` | Returns a `NamespaceOperation` using this operation as its base.
  `default NamespaceOperation` | `withNamespaces​(Namespace... namespaces)` | Returns a `NamespaceOperation` using this operation as its base.

- ## Method Details

  - ### withNamespace

    default NamespaceOperation withNamespace​(Namespace namespace)
    Returns a `NamespaceOperation` using this operation as its base.
    Parameters:
      `namespace` - the namespace that is the target of the namespace operation.
    Returns:
      a `NamespaceOperation` with this operation as its base and the specified namespace as its target.
    Throws:
      `IllegalArgumentException` - if this operation is already a namespace operation or a named operation.
      `NullPointerException` - if `namespace` is null.

  - ### withNamespaces

    default NamespaceOperation withNamespaces​(Namespace... namespaces)
    Returns a `NamespaceOperation` using this operation as its base.
    Parameters:
      `namespaces` - the namespaces that are the target of the namespace operation.
    Returns:
      a `NamespaceOperation` with this operation as its base and the specified namespaces as its targets.
    Throws:
      `IllegalArgumentException` - if this operation is already a namespace operation or a named operation.
      `NullPointerException` - if `namespace` or any of its elements is null.

  - ### named

    default NamedOperation named​(Object name)
    Returns a `NamedOperation` using this operation as its base.
    Parameters:
      `name` - the name that is the target of the named operation.
    Returns:
      a `NamedOperation` with this operation as its base and the specified name.
    Throws:
      `IllegalArgumentException` - if this operation is already a named operation.
      `NullPointerException` - if `name` is null.