Interface UntypedNexusOperationHandle

All Known Subinterfaces:
NexusOperationHandle<R>
All Known Implementing Classes:
NexusOperationHandleImpl

@Experimental public interface UntypedNexusOperationHandle
An untyped handle to a standalone Nexus operation execution. Use this to get the result, describe, cancel, or terminate the operation when the result type is not known at compile time.

Obtain an instance via NexusClient.getHandle(String, String) or as the untyped projection of a handle returned by NexusServiceClient.

See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Requests cancellation of the Nexus operation.
    void
    cancel(String reason)
    Requests cancellation of the Nexus operation with an optional reason.
    Describes the current state of the Nexus operation execution.
    The caller-assigned operation ID for this execution.
    The server-assigned run ID for this operation execution.
    <R> R
    getResult(long timeout, TimeUnit unit, Class<R> resultClass)
    Blocks until the standalone Nexus operation completes and returns the typed result, or throws if the client-side timeout expires before the operation completes.
    <R> R
    getResult(long timeout, TimeUnit unit, Class<R> resultClass, Type resultType)
    Blocks until the standalone Nexus operation completes and returns the typed result, or throws if the client-side timeout expires.
    <R> R
    getResult(Class<R> resultClass)
    Blocks until the standalone Nexus operation completes and returns the typed result.
    <R> R
    getResult(Class<R> resultClass, Type resultType)
    Blocks until the standalone Nexus operation completes and returns the typed result.
    getResultAsync(long timeout, TimeUnit unit, Class<R> resultClass)
    Returns a future that completes when the operation completes, or fails with TimeoutException if the operation does not complete within the specified timeout.
    getResultAsync(long timeout, TimeUnit unit, Class<R> resultClass, Type resultType)
    Returns a future for generic return types with a timeout.
    getResultAsync(Class<R> resultClass)
    Returns a future that completes when the operation completes and resolves to the typed result.
    getResultAsync(Class<R> resultClass, Type resultType)
    Returns a future that completes when the operation completes and resolves to the typed result.
    void
    Terminates the Nexus operation immediately, regardless of its current state.
    void
    terminate(String reason)
    Terminates the Nexus operation immediately with a reason.
  • Method Details

    • getNexusOperationId

      String getNexusOperationId()
      The caller-assigned operation ID for this execution. Always non-null.
    • getNexusOperationRunId

      @Nullable String getNexusOperationRunId()
      The server-assigned run ID for this operation execution. Present when the handle was returned by start or when NexusClient.getHandle(String, String) was called with an explicit run ID.
    • getResult

      <R> R getResult(Class<R> resultClass)
      Blocks until the standalone Nexus operation completes and returns the typed result. Polls the server via long-polling.
      Parameters:
      resultClass - the class to deserialize the result into
      Throws:
      NexusOperationException - if the operation failed, timed out, or was cancelled; the concrete subtype reflects the underlying failure
    • getResult

      <R> R getResult(Class<R> resultClass, @Nullable Type resultType)
      Blocks until the standalone Nexus operation completes and returns the typed result. Use this overload for generic return types (e.g. List<String>).
      Parameters:
      resultClass - the class to deserialize the result into
      resultType - the generic type to use for deserialization; may be null
      Throws:
      NexusOperationException - if the operation failed, timed out, or was cancelled; the concrete subtype reflects the underlying failure
    • getResult

      <R> R getResult(long timeout, TimeUnit unit, Class<R> resultClass) throws TimeoutException
      Blocks until the standalone Nexus operation completes and returns the typed result, or throws if the client-side timeout expires before the operation completes.
      Parameters:
      timeout - maximum time to wait
      unit - unit of timeout
      resultClass - the class to deserialize the result into
      Throws:
      NexusOperationException - if the operation failed, timed out on the server, or was cancelled
      TimeoutException - if the client-side timeout expires before the operation completes
    • getResult

      <R> R getResult(long timeout, TimeUnit unit, Class<R> resultClass, @Nullable Type resultType) throws TimeoutException
      Blocks until the standalone Nexus operation completes and returns the typed result, or throws if the client-side timeout expires. Use this overload for generic return types (e.g. List<String>).
      Parameters:
      timeout - maximum time to wait
      unit - unit of timeout
      resultClass - the class to deserialize the result into
      resultType - the generic type to use for deserialization; may be null
      Throws:
      NexusOperationException - if the operation failed, timed out on the server, or was cancelled
      TimeoutException - if the client-side timeout expires before the operation completes
    • getResultAsync

      <R> CompletableFuture<R> getResultAsync(Class<R> resultClass)
      Returns a future that completes when the operation completes and resolves to the typed result.
      Parameters:
      resultClass - the class to deserialize the result into
    • getResultAsync

      <R> CompletableFuture<R> getResultAsync(Class<R> resultClass, @Nullable Type resultType)
      Returns a future that completes when the operation completes and resolves to the typed result. Use this overload for generic return types (e.g. List<String>).
      Parameters:
      resultClass - the class to deserialize the result into
      resultType - the generic type to use for deserialization; may be null
    • getResultAsync

      <R> CompletableFuture<R> getResultAsync(long timeout, TimeUnit unit, Class<R> resultClass)
      Returns a future that completes when the operation completes, or fails with TimeoutException if the operation does not complete within the specified timeout.
      Parameters:
      timeout - maximum time to wait
      unit - unit of timeout
      resultClass - the class to deserialize the result into
    • getResultAsync

      <R> CompletableFuture<R> getResultAsync(long timeout, TimeUnit unit, Class<R> resultClass, @Nullable Type resultType)
      Returns a future for generic return types with a timeout.
      Parameters:
      timeout - maximum time to wait
      unit - unit of timeout
      resultClass - the class to deserialize the result into
      resultType - the generic type to use for deserialization; may be null
    • describe

      Describes the current state of the Nexus operation execution.
      Returns:
      detailed information about the operation
    • cancel

      void cancel()
      Requests cancellation of the Nexus operation.
    • cancel

      void cancel(@Nullable String reason)
      Requests cancellation of the Nexus operation with an optional reason.
      Parameters:
      reason - human-readable reason for cancellation, may be null
    • terminate

      void terminate()
      Terminates the Nexus operation immediately, regardless of its current state.
    • terminate

      void terminate(@Nullable String reason)
      Terminates the Nexus operation immediately with a reason.
      Parameters:
      reason - human-readable reason for termination, may be null