package com.amazonaws.resiliencehub.resiliencypolicy; import org.apache.commons.lang3.Validate; import com.amazonaws.resiliencehub.common.ClientBuilder; import software.amazon.awssdk.services.resiliencehub.ResiliencehubClient; import software.amazon.cloudformation.proxy.AmazonWebServicesClientProxy; import software.amazon.cloudformation.proxy.Logger; import software.amazon.cloudformation.proxy.ProgressEvent; import software.amazon.cloudformation.proxy.ProxyClient; import software.amazon.cloudformation.proxy.ResourceHandlerRequest; // Placeholder for the functionality that could be shared across Create/Read/Update/Delete/List Handlers public abstract class BaseHandlerStd extends BaseHandler { final ApiCallsWrapper apiCallsWrapper; public BaseHandlerStd() { this(new ApiCallsWrapper()); } public BaseHandlerStd(final ApiCallsWrapper apiCallsWrapper) { Validate.notNull(apiCallsWrapper); this.apiCallsWrapper = apiCallsWrapper; } @Override public final ProgressEvent handleRequest( final AmazonWebServicesClientProxy proxy, final ResourceHandlerRequest request, final CallbackContext callbackContext, final Logger logger) { return handleRequest( proxy, request, callbackContext != null ? callbackContext : new CallbackContext(), proxy.newProxy(ClientBuilder::getClient), logger ); } protected abstract ProgressEvent handleRequest( final AmazonWebServicesClientProxy proxy, final ResourceHandlerRequest request, final CallbackContext callbackContext, final ProxyClient proxyClient, final Logger logger); }