# Uses of Interface
jdk.dynalink.Operation

Packages that use Operation
Package | Description
--- | ---
jdk.dynalink | Contains interfaces and classes that are used to link an `invokedynamic` call site.

## Uses of Operation in jdk.dynalink

Classes in jdk.dynalink that implement Operation
Modifier and Type | Class | Description
--- | --- | ---
`class` | `NamedOperation` | Operation that associates a name with another operation.
`class` | `NamespaceOperation` | Describes an operation that operates on at least one `Namespace` of an object.
`class` | `StandardOperation` | Defines the standard dynamic operations.

Methods in jdk.dynalink that return Operation
Modifier and Type | Method | Description
--- | --- | ---
`Operation` | NamedOperation.`getBaseOperation()` | Returns the base operation of this named operation.
`static Operation` | NamedOperation.`getBaseOperation​(Operation op)` | If the passed operation is a named operation, returns its `NamedOperation.getBaseOperation()`, otherwise returns the operation as is.
`Operation` | NamespaceOperation.`getBaseOperation()` | Returns the base operation of this named operation.
`static Operation` | NamespaceOperation.`getBaseOperation​(Operation op)` | If the passed operation is a namespace operation, returns its `NamespaceOperation.getBaseOperation()`, otherwise returns the operation as is.
`Operation` | CallSiteDescriptor.`getOperation()` | Returns the operation at the call site.

Methods in jdk.dynalink with parameters of type Operation
Modifier and Type | Method | Description
--- | --- | ---
`CallSiteDescriptor` | CallSiteDescriptor.`changeOperation​(Operation newOperation)` | Finds or creates a call site descriptor that only differs in its operation from this descriptor.
`protected CallSiteDescriptor` | CallSiteDescriptor.`changeOperationInternal​(Operation newOperation)` | Finds or creates a call site descriptor that only differs in its operation from this descriptor.
`static boolean` | NamespaceOperation.`contains​(Operation op, Operation baseOperation, Namespace namespace)` | Returns true if the specified operation is a `NamespaceOperation` and its base operation is equal to the specified operation, and it contains the specified namespace.
`static StandardNamespace` | StandardNamespace.`findFirst​(Operation op)` | If the passed in operation is a `NamespaceOperation`, or a `NamedOperation` wrapping a `NamespaceOperation`, then it returns the first (if any) `StandardNamespace` in its namespace list.
`static Operation` | NamedOperation.`getBaseOperation​(Operation op)` | If the passed operation is a named operation, returns its `NamedOperation.getBaseOperation()`, otherwise returns the operation as is.
`static Operation` | NamespaceOperation.`getBaseOperation​(Operation op)` | If the passed operation is a namespace operation, returns its `NamespaceOperation.getBaseOperation()`, otherwise returns the operation as is.
`static Object` | NamedOperation.`getName​(Operation op)` | If the passed operation is a named operation, returns its `NamedOperation.getName()`, otherwise returns null.
`static Namespace[]` | NamespaceOperation.`getNamespaces​(Operation op)` | If the passed operation is a namespace operation, returns its `NamespaceOperation.getNamespaces()`, otherwise returns an empty array.

Constructors in jdk.dynalink with parameters of type Operation
Constructor | Description
--- | ---
`CallSiteDescriptor​(MethodHandles.Lookup lookup, Operation operation, MethodType methodType)` | Creates a new call site descriptor.
`NamedOperation​(Operation baseOperation, Object name)` | Creates a new named operation.
`NamespaceOperation​(Operation baseOperation, Namespace... namespaces)` | Constructs a new namespace operation.