# 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
  `final class`
  `NamedOperation`
  Operation that associates a name with another operation.
  `final class`
  `NamespaceOperation`
  Describes an operation that operates on at least one `Namespace` of an object.
  `enum`
  `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.
  `final Operation`
  CallSiteDescriptor.`getOperation()`
  Returns the operation at the call site.
  Methods in jdk.dynalink with parameters of type Operation
  Modifier and Type
  Method
  Description
  `final 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
  Modifier
  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.