All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.controltower.AWSControlTowerAsyncClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS Control Tower module holds the client classes that are used for communicating with AWS Control Tower Service

There is a newer version: 1.12.778
Show newest version
/*
 * Copyright 2019-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.services.controltower;

import javax.annotation.Generated;

import com.amazonaws.services.controltower.model.*;
import com.amazonaws.client.AwsAsyncClientParams;
import com.amazonaws.annotation.ThreadSafe;

import java.util.concurrent.ExecutorService;

/**
 * Client for accessing AWS Control Tower asynchronously. Each asynchronous method will return a Java Future object
 * representing the asynchronous operation; overloads which accept an {@code AsyncHandler} can be used to receive
 * notification when an asynchronous operation completes.
 * 

*

* Amazon Web Services Control Tower offers application programming interface (API) operations that support programmatic * interaction with these types of resources: *

* *

* For more information about these types of resources, see the Amazon Web Services * Control Tower User Guide . *

*

* About control APIs *

*

* These interfaces allow you to apply the Amazon Web Services library of pre-defined controls to your * organizational units, programmatically. In Amazon Web Services Control Tower, the terms "control" and "guardrail" are * synonyms. *

*

* To call these APIs, you'll need to know: *

*
    *
  • *

    * the controlIdentifier for the control--or guardrail--you are targeting. *

    *
  • *
  • *

    * the ARN associated with the target organizational unit (OU), which we call the targetIdentifier. *

    *
  • *
  • *

    * the ARN associated with a resource that you wish to tag or untag. *

    *
  • *
*

* To get the controlIdentifier for your Amazon Web Services Control Tower control: *

*

* The controlIdentifier is an ARN that is specified for each control. You can view the * controlIdentifier in the console on the Control details page, as well as in the documentation. *

*

* The controlIdentifier is unique in each Amazon Web Services Region for each control. You can find the * controlIdentifier for each Region and control in the Tables of * control metadata or the Control * availability by Region tables in the Amazon Web Services Control Tower Controls Reference Guide. *

*

* A quick-reference list of control identifers for the Amazon Web Services Control Tower legacy Strongly * recommended and Elective controls is given in Resource * identifiers for APIs and controls in the Amazon Web * Services Control Tower Controls Reference Guide . Remember that Mandatory controls cannot be added or * removed. *

* *

* ARN format: arn:aws:controltower:{REGION}::control/{CONTROL_NAME} *

*

* Example: *

*

* arn:aws:controltower:us-west-2::control/AWS-GR_AUTOSCALING_LAUNCH_CONFIG_PUBLIC_IP_DISABLED *

*
*

* To get the targetIdentifier: *

*

* The targetIdentifier is the ARN for an OU. *

*

* In the Amazon Web Services Organizations console, you can find the ARN for the OU on the Organizational unit * details page associated with that OU. *

* *

* OU ARN format: *

*

* arn:${Partition}:organizations::${MasterAccountId}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId} *

*
*

* About landing zone APIs *

*

* You can configure and launch an Amazon Web Services Control Tower landing zone with APIs. For an introduction and * steps, see Getting * started with Amazon Web Services Control Tower using APIs. *

*

* For an overview of landing zone API operations, see Amazon Web Services * Control Tower supports landing zone APIs. The individual API operations for landing zones are detailed in this * document, the API * reference manual, in the "Actions" section. *

*

* About baseline APIs *

*

* You can apply the AWSControlTowerBaseline baseline to an organizational unit (OU) as a way to register * the OU with Amazon Web Services Control Tower, programmatically. For a general overview of this capability, see Amazon Web Services * Control Tower supports APIs for OU registration and configuration with baselines. *

*

* You can call the baseline API operations to view the baselines that Amazon Web Services Control Tower enables for * your landing zone, on your behalf, when setting up the landing zone. These baselines are read-only baselines. *

*

* The individual API operations for baselines are detailed in this document, the API reference manual, in * the "Actions" section. For usage examples, see Baseline API input and * output examples with CLI. *

*

* Details and examples *

* *

* To view the open source resource repository on GitHub, see aws-cloudformation/aws-cloudformation-resource-providers-controltower *

*

* Recording API Requests *

*

* Amazon Web Services Control Tower supports Amazon Web Services CloudTrail, a service that records Amazon Web Services * API calls for your Amazon Web Services account and delivers log files to an Amazon S3 bucket. By using information * collected by CloudTrail, you can determine which requests the Amazon Web Services Control Tower service received, who * made the request and when, and so on. For more about Amazon Web Services Control Tower and its support for * CloudTrail, see Logging Amazon Web * Services Control Tower Actions with Amazon Web Services CloudTrail in the Amazon Web Services Control Tower User * Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the Amazon Web * Services CloudTrail User Guide. *

*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AWSControlTowerAsyncClient extends AWSControlTowerClient implements AWSControlTowerAsync { private static final int DEFAULT_THREAD_POOL_SIZE = 50; private final java.util.concurrent.ExecutorService executorService; public static AWSControlTowerAsyncClientBuilder asyncBuilder() { return AWSControlTowerAsyncClientBuilder.standard(); } /** * Constructs a new asynchronous client to invoke service methods on AWS Control Tower using the specified * parameters. * * @param asyncClientParams * Object providing client parameters. */ AWSControlTowerAsyncClient(AwsAsyncClientParams asyncClientParams) { this(asyncClientParams, false); } /** * Constructs a new asynchronous client to invoke service methods on AWS Control Tower using the specified * parameters. * * @param asyncClientParams * Object providing client parameters. * @param endpointDiscoveryEnabled * true will enable endpoint discovery if the service supports it. */ AWSControlTowerAsyncClient(AwsAsyncClientParams asyncClientParams, boolean endpointDiscoveryEnabled) { super(asyncClientParams, endpointDiscoveryEnabled); this.executorService = asyncClientParams.getExecutor(); } /** * Returns the executor service used by this client to execute async requests. * * @return The executor service used by this client to execute async requests. */ public ExecutorService getExecutorService() { return executorService; } @Override public java.util.concurrent.Future deleteLandingZoneAsync(DeleteLandingZoneRequest request) { return deleteLandingZoneAsync(request, null); } @Override public java.util.concurrent.Future deleteLandingZoneAsync(final DeleteLandingZoneRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final DeleteLandingZoneRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public DeleteLandingZoneResult call() throws Exception { DeleteLandingZoneResult result = null; try { result = executeDeleteLandingZone(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future disableBaselineAsync(DisableBaselineRequest request) { return disableBaselineAsync(request, null); } @Override public java.util.concurrent.Future disableBaselineAsync(final DisableBaselineRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final DisableBaselineRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public DisableBaselineResult call() throws Exception { DisableBaselineResult result = null; try { result = executeDisableBaseline(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future disableControlAsync(DisableControlRequest request) { return disableControlAsync(request, null); } @Override public java.util.concurrent.Future disableControlAsync(final DisableControlRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final DisableControlRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public DisableControlResult call() throws Exception { DisableControlResult result = null; try { result = executeDisableControl(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future enableBaselineAsync(EnableBaselineRequest request) { return enableBaselineAsync(request, null); } @Override public java.util.concurrent.Future enableBaselineAsync(final EnableBaselineRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final EnableBaselineRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public EnableBaselineResult call() throws Exception { EnableBaselineResult result = null; try { result = executeEnableBaseline(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future enableControlAsync(EnableControlRequest request) { return enableControlAsync(request, null); } @Override public java.util.concurrent.Future enableControlAsync(final EnableControlRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final EnableControlRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public EnableControlResult call() throws Exception { EnableControlResult result = null; try { result = executeEnableControl(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future getBaselineAsync(GetBaselineRequest request) { return getBaselineAsync(request, null); } @Override public java.util.concurrent.Future getBaselineAsync(final GetBaselineRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetBaselineRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetBaselineResult call() throws Exception { GetBaselineResult result = null; try { result = executeGetBaseline(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future getBaselineOperationAsync(GetBaselineOperationRequest request) { return getBaselineOperationAsync(request, null); } @Override public java.util.concurrent.Future getBaselineOperationAsync(final GetBaselineOperationRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetBaselineOperationRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetBaselineOperationResult call() throws Exception { GetBaselineOperationResult result = null; try { result = executeGetBaselineOperation(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future getControlOperationAsync(GetControlOperationRequest request) { return getControlOperationAsync(request, null); } @Override public java.util.concurrent.Future getControlOperationAsync(final GetControlOperationRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetControlOperationRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetControlOperationResult call() throws Exception { GetControlOperationResult result = null; try { result = executeGetControlOperation(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future getEnabledBaselineAsync(GetEnabledBaselineRequest request) { return getEnabledBaselineAsync(request, null); } @Override public java.util.concurrent.Future getEnabledBaselineAsync(final GetEnabledBaselineRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetEnabledBaselineRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetEnabledBaselineResult call() throws Exception { GetEnabledBaselineResult result = null; try { result = executeGetEnabledBaseline(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future getEnabledControlAsync(GetEnabledControlRequest request) { return getEnabledControlAsync(request, null); } @Override public java.util.concurrent.Future getEnabledControlAsync(final GetEnabledControlRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetEnabledControlRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetEnabledControlResult call() throws Exception { GetEnabledControlResult result = null; try { result = executeGetEnabledControl(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future getLandingZoneOperationAsync(GetLandingZoneOperationRequest request) { return getLandingZoneOperationAsync(request, null); } @Override public java.util.concurrent.Future getLandingZoneOperationAsync(final GetLandingZoneOperationRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final GetLandingZoneOperationRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public GetLandingZoneOperationResult call() throws Exception { GetLandingZoneOperationResult result = null; try { result = executeGetLandingZoneOperation(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future listBaselinesAsync(ListBaselinesRequest request) { return listBaselinesAsync(request, null); } @Override public java.util.concurrent.Future listBaselinesAsync(final ListBaselinesRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListBaselinesRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListBaselinesResult call() throws Exception { ListBaselinesResult result = null; try { result = executeListBaselines(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future listControlOperationsAsync(ListControlOperationsRequest request) { return listControlOperationsAsync(request, null); } @Override public java.util.concurrent.Future listControlOperationsAsync(final ListControlOperationsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListControlOperationsRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListControlOperationsResult call() throws Exception { ListControlOperationsResult result = null; try { result = executeListControlOperations(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future listEnabledBaselinesAsync(ListEnabledBaselinesRequest request) { return listEnabledBaselinesAsync(request, null); } @Override public java.util.concurrent.Future listEnabledBaselinesAsync(final ListEnabledBaselinesRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListEnabledBaselinesRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListEnabledBaselinesResult call() throws Exception { ListEnabledBaselinesResult result = null; try { result = executeListEnabledBaselines(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future listEnabledControlsAsync(ListEnabledControlsRequest request) { return listEnabledControlsAsync(request, null); } @Override public java.util.concurrent.Future listEnabledControlsAsync(final ListEnabledControlsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListEnabledControlsRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListEnabledControlsResult call() throws Exception { ListEnabledControlsResult result = null; try { result = executeListEnabledControls(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future listLandingZoneOperationsAsync(ListLandingZoneOperationsRequest request) { return listLandingZoneOperationsAsync(request, null); } @Override public java.util.concurrent.Future listLandingZoneOperationsAsync(final ListLandingZoneOperationsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListLandingZoneOperationsRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListLandingZoneOperationsResult call() throws Exception { ListLandingZoneOperationsResult result = null; try { result = executeListLandingZoneOperations(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future listLandingZonesAsync(ListLandingZonesRequest request) { return listLandingZonesAsync(request, null); } @Override public java.util.concurrent.Future listLandingZonesAsync(final ListLandingZonesRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListLandingZonesRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListLandingZonesResult call() throws Exception { ListLandingZonesResult result = null; try { result = executeListLandingZones(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future listTagsForResourceAsync(ListTagsForResourceRequest request) { return listTagsForResourceAsync(request, null); } @Override public java.util.concurrent.Future listTagsForResourceAsync(final ListTagsForResourceRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ListTagsForResourceRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ListTagsForResourceResult call() throws Exception { ListTagsForResourceResult result = null; try { result = executeListTagsForResource(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future resetEnabledBaselineAsync(ResetEnabledBaselineRequest request) { return resetEnabledBaselineAsync(request, null); } @Override public java.util.concurrent.Future resetEnabledBaselineAsync(final ResetEnabledBaselineRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ResetEnabledBaselineRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ResetEnabledBaselineResult call() throws Exception { ResetEnabledBaselineResult result = null; try { result = executeResetEnabledBaseline(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future resetLandingZoneAsync(ResetLandingZoneRequest request) { return resetLandingZoneAsync(request, null); } @Override public java.util.concurrent.Future resetLandingZoneAsync(final ResetLandingZoneRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final ResetLandingZoneRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public ResetLandingZoneResult call() throws Exception { ResetLandingZoneResult result = null; try { result = executeResetLandingZone(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future tagResourceAsync(TagResourceRequest request) { return tagResourceAsync(request, null); } @Override public java.util.concurrent.Future tagResourceAsync(final TagResourceRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final TagResourceRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public TagResourceResult call() throws Exception { TagResourceResult result = null; try { result = executeTagResource(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future untagResourceAsync(UntagResourceRequest request) { return untagResourceAsync(request, null); } @Override public java.util.concurrent.Future untagResourceAsync(final UntagResourceRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final UntagResourceRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public UntagResourceResult call() throws Exception { UntagResourceResult result = null; try { result = executeUntagResource(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } @Override public java.util.concurrent.Future updateEnabledBaselineAsync(UpdateEnabledBaselineRequest request) { return updateEnabledBaselineAsync(request, null); } @Override public java.util.concurrent.Future updateEnabledBaselineAsync(final UpdateEnabledBaselineRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { final UpdateEnabledBaselineRequest finalRequest = beforeClientExecution(request); return executorService.submit(new java.util.concurrent.Callable() { @Override public UpdateEnabledBaselineResult call() throws Exception { UpdateEnabledBaselineResult result = null; try { result = executeUpdateEnabledBaseline(finalRequest); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(finalRequest, result); } return result; } }); } /** * Shuts down the client, releasing all managed resources. This includes forcibly terminating all pending * asynchronous service calls. Clients who wish to give pending asynchronous service calls time to complete should * call {@code getExecutorService().shutdown()} followed by {@code getExecutorService().awaitTermination()} prior to * calling this method. */ @Override public void shutdown() { super.shutdown(); executorService.shutdownNow(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy