Class SyncOperationResourcePollingStrategy<T,U>

java.lang.Object
com.azure.core.util.polling.SyncOperationResourcePollingStrategy<T,U>
Type Parameters:
T - the type of the response type from a polling call, or BinaryData if raw response body should be kept
U - the type of the final result object to deserialize into, or BinaryData if raw response body should be kept
All Implemented Interfaces:
SyncPollingStrategy<T,U>

public class SyncOperationResourcePollingStrategy<T,U> extends Object implements SyncPollingStrategy<T,U>
Implements a synchronous operation resource polling strategy, typically from Operation-Location.
  • Constructor Details

    • SyncOperationResourcePollingStrategy

      public SyncOperationResourcePollingStrategy(HttpPipeline httpPipeline)
      Creates an instance of the operation resource polling strategy using a JSON serializer and "Operation-Location" as the header for polling.
      Parameters:
      httpPipeline - an instance of HttpPipeline to send requests with
    • SyncOperationResourcePollingStrategy

      public SyncOperationResourcePollingStrategy(HttpPipeline httpPipeline, ObjectSerializer serializer, String operationLocationHeaderName)
      Creates an instance of the operation resource polling strategy.
      Parameters:
      httpPipeline - an instance of HttpPipeline to send requests with
      serializer - a custom serializer for serializing and deserializing polling responses
      operationLocationHeaderName - a custom header for polling the long-running operation
    • SyncOperationResourcePollingStrategy

      public SyncOperationResourcePollingStrategy(HttpPipeline httpPipeline, ObjectSerializer serializer, String operationLocationHeaderName, Context context)
      Creates an instance of the operation resource polling strategy.
      Parameters:
      httpPipeline - an instance of HttpPipeline to send requests with
      serializer - a custom serializer for serializing and deserializing polling responses
      operationLocationHeaderName - a custom header for polling the long-running operation
      context - an instance of Context
    • SyncOperationResourcePollingStrategy

      public SyncOperationResourcePollingStrategy(HttpPipeline httpPipeline, String endpoint, ObjectSerializer serializer, String operationLocationHeaderName, Context context)
      Creates an instance of the operation resource polling strategy.
      Parameters:
      httpPipeline - an instance of HttpPipeline to send requests with.
      endpoint - an endpoint for creating an absolute path when the path itself is relative.
      serializer - a custom serializer for serializing and deserializing polling responses.
      operationLocationHeaderName - a custom header for polling the long-running operation.
      context - an instance of Context.
    • SyncOperationResourcePollingStrategy

      public SyncOperationResourcePollingStrategy(HttpHeaderName operationLocationHeaderName, PollingStrategyOptions pollingStrategyOptions)
      Creates an instance of the operation resource polling strategy.
      Parameters:
      operationLocationHeaderName - a custom header for polling the long-running operation.
      pollingStrategyOptions - options to configure this polling strategy.
      Throws:
      NullPointerException - if pollingStrategyOptions is null.
  • Method Details

    • canPoll

      public boolean canPoll(Response<?> initialResponse)
      Description copied from interface: SyncPollingStrategy
      Checks if this strategy is able to handle polling for this long-running operation based on the information in the initial response.
      Specified by:
      canPoll in interface SyncPollingStrategy<T,U>
      Parameters:
      initialResponse - the response from the initial method call to activate the long-running operation
      Returns:
      true if this polling strategy can handle the initial response, false if not
    • onInitialResponse

      public PollResponse<T> onInitialResponse(Response<?> response, PollingContext<T> pollingContext, TypeReference<T> pollResponseType)
      Description copied from interface: SyncPollingStrategy
      Parses the initial response into a LongRunningOperationStatus, and stores information useful for polling in the PollingContext. If the result is anything other than LongRunningOperationStatus.IN_PROGRESS, the long-running operation will be terminated and none of the other methods will be invoked.
      Specified by:
      onInitialResponse in interface SyncPollingStrategy<T,U>
      Parameters:
      response - the response from the initial method call to activate the long-running operation
      pollingContext - the PollingContext for the current polling operation
      pollResponseType - the TypeReference of the response type from a polling call, or BinaryData if raw response body should be kept. This should match the generic parameter U.
      Returns:
      the poll response containing the status and the response content
    • poll

      public PollResponse<T> poll(PollingContext<T> pollingContext, TypeReference<T> pollResponseType)
      Description copied from interface: SyncPollingStrategy
      Parses the response from the polling URL into a PollResponse, and stores information useful for further polling and final response in the PollingContext. The result must have the LongRunningOperationStatus specified, and the entire polling response content as a BinaryData.
      Specified by:
      poll in interface SyncPollingStrategy<T,U>
      Parameters:
      pollingContext - the PollingContext for the current polling operation
      pollResponseType - the TypeReference of the response type from a polling call, or BinaryData if raw response body should be kept. This should match the generic parameter U.
      Returns:
      the poll response containing the status and the response content
    • getResult

      public U getResult(PollingContext<T> pollingContext, TypeReference<U> resultType)
      Description copied from interface: SyncPollingStrategy
      Parses the response from the final GET call into the result type of the long-running operation.
      Specified by:
      getResult in interface SyncPollingStrategy<T,U>
      Parameters:
      pollingContext - the PollingContext for the current polling operation
      resultType - the TypeReference of the final result object to deserialize into, or BinaryData if raw response body should be kept.
      Returns:
      the final result