com.amazonaws.waiters.PollingStrategy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aws-java-sdk-core Show documentation
Show all versions of aws-java-sdk-core Show documentation
The AWS SDK for Java - Core module holds the classes that are used by the individual service clients to interact with Amazon Web Services. Users need to depend on aws-java-sdk artifact for accessing individual client classes.
/*
* Copyright 2010-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.waiters;
public class PollingStrategy{
/**
* Condition on whether polling should be retried.
*/
private final RetryStrategy retryStrategy;
/**
* Delay strategy to control the sleep time between retry attempts.
*/
private final DelayStrategy delayStrategy;
/**
* Constructs a new PollingStrategy with RetryStrategy
* and DelayStrategy defined
*
* @param retryStrategy Retry condition on whether polling should be retried.
* If null value is specified, the SDK' default retry
* condition is used.
*/
public PollingStrategy(RetryStrategy retryStrategy, DelayStrategy delayStrategy) {
this.retryStrategy = retryStrategy;
this.delayStrategy = delayStrategy;
}
/**
* Returns the retry condition included in this Polling Strategy.
*
* @return The retry condition included in this Polling Strategy.
*/
RetryStrategy getRetryStrategy() {
return this.retryStrategy;
}
/**
* Returns the delay strategy included in this Polling Strategy.
*
* @return The delay strategy included in this Polling Strategy.
*/
DelayStrategy getDelayStrategy() {
return this.delayStrategy;
}
/**
* The hook for providing custom condition on whether polling of a resource
* should be retried.
*/
public interface RetryStrategy {
/**
* Returns whether polling of a resource should be retried according to the
* given polling context.
*
* @param pollingStrategyContext Provides the polling context required to make the retry decision
* @return True if it should be retried.
* @see PollingStrategyContext
*/
boolean shouldRetry(PollingStrategyContext pollingStrategyContext);
}
/**
* The hook for providing custom delay strategy to control the sleep time
* between retries.
*/
public interface DelayStrategy {
/**
* Defines the custom delay strategy to control the sleep time
*
* @param pollingStrategyContext Provides the polling context required to define custom delay
* @throws InterruptedException
* @see PollingStrategyContext
*/
void delayBeforeNextRetry(PollingStrategyContext pollingStrategyContext) throws InterruptedException;
}
}