/*
* This code was generated by AWS Flow Framework Annotation Processor.
* Refer to Amazon Simple Workflow Service documentation at http://aws.amazon.com/documentation/swf
*
* Any changes made directly to this file will be lost when
* the code is regenerated.
*/
package com.eucalyptus.loadbalancing.workflow;
import com.amazonaws.services.simpleworkflow.flow.core.AndPromise;
import com.amazonaws.services.simpleworkflow.flow.core.Promise;
import com.amazonaws.services.simpleworkflow.flow.core.Task;
import com.amazonaws.services.simpleworkflow.flow.DataConverter;
import com.amazonaws.services.simpleworkflow.flow.StartWorkflowOptions;
import com.amazonaws.services.simpleworkflow.flow.WorkflowSelfClientBase;
import com.amazonaws.services.simpleworkflow.flow.generic.ContinueAsNewWorkflowExecutionParameters;
import com.amazonaws.services.simpleworkflow.flow.generic.GenericWorkflowClient;
public class EnableAvailabilityZoneWorkflowSelfClientImpl extends WorkflowSelfClientBase implements EnableAvailabilityZoneWorkflowSelfClient {
public EnableAvailabilityZoneWorkflowSelfClientImpl() {
this(null, new com.amazonaws.services.simpleworkflow.flow.JsonDataConverter(), null);
}
public EnableAvailabilityZoneWorkflowSelfClientImpl(GenericWorkflowClient genericClient) {
this(genericClient, new com.amazonaws.services.simpleworkflow.flow.JsonDataConverter(), null);
}
public EnableAvailabilityZoneWorkflowSelfClientImpl(GenericWorkflowClient genericClient,
DataConverter dataConverter, StartWorkflowOptions schedulingOptions) {
super(genericClient, dataConverter, schedulingOptions);
}
@Override
public final void enableAvailabilityZone(String accountId, String loadbalancer, java.util.List<java.lang.String> availabilityZones, java.util.Map<java.lang.String,java.lang.String> zoneToSubnetIdMap) {
enableAvailabilityZoneImpl(Promise.asPromise(accountId), Promise.asPromise(loadbalancer), Promise.asPromise(availabilityZones), Promise.asPromise(zoneToSubnetIdMap), (StartWorkflowOptions)null);
}
@Override
public final void enableAvailabilityZone(String accountId, String loadbalancer, java.util.List<java.lang.String> availabilityZones, java.util.Map<java.lang.String,java.lang.String> zoneToSubnetIdMap, Promise<?>... waitFor) {
enableAvailabilityZoneImpl(Promise.asPromise(accountId), Promise.asPromise(loadbalancer), Promise.asPromise(availabilityZones), Promise.asPromise(zoneToSubnetIdMap), (StartWorkflowOptions)null, waitFor);
}
@Override
public final void enableAvailabilityZone(String accountId, String loadbalancer, java.util.List<java.lang.String> availabilityZones, java.util.Map<java.lang.String,java.lang.String> zoneToSubnetIdMap, StartWorkflowOptions optionsOverride, Promise<?>... waitFor) {
enableAvailabilityZoneImpl(Promise.asPromise(accountId), Promise.asPromise(loadbalancer), Promise.asPromise(availabilityZones), Promise.asPromise(zoneToSubnetIdMap), optionsOverride, waitFor);
}
@Override
public final void enableAvailabilityZone(Promise<String> accountId, Promise<String> loadbalancer, Promise<java.util.List<java.lang.String>> availabilityZones, Promise<java.util.Map<java.lang.String,java.lang.String>> zoneToSubnetIdMap) {
enableAvailabilityZoneImpl(accountId, loadbalancer, availabilityZones, zoneToSubnetIdMap, (StartWorkflowOptions)null);
}
@Override
public final void enableAvailabilityZone(Promise<String> accountId, Promise<String> loadbalancer, Promise<java.util.List<java.lang.String>> availabilityZones, Promise<java.util.Map<java.lang.String,java.lang.String>> zoneToSubnetIdMap, Promise<?>... waitFor) {
enableAvailabilityZoneImpl(accountId, loadbalancer, availabilityZones, zoneToSubnetIdMap, (StartWorkflowOptions)null, waitFor);
}
@Override
public final void enableAvailabilityZone(Promise<String> accountId, Promise<String> loadbalancer, Promise<java.util.List<java.lang.String>> availabilityZones, Promise<java.util.Map<java.lang.String,java.lang.String>> zoneToSubnetIdMap, StartWorkflowOptions optionsOverride, Promise<?>... waitFor) {
enableAvailabilityZoneImpl(accountId, loadbalancer, availabilityZones, zoneToSubnetIdMap, optionsOverride, waitFor);
}
protected void enableAvailabilityZoneImpl(final Promise<String> accountId, final Promise<String> loadbalancer, final Promise<java.util.List<java.lang.String>> availabilityZones, final Promise<java.util.Map<java.lang.String,java.lang.String>> zoneToSubnetIdMap, final StartWorkflowOptions schedulingOptionsOverride, Promise<?>... waitFor) {
new Task(new Promise[] { accountId, loadbalancer, availabilityZones, zoneToSubnetIdMap, new AndPromise(waitFor) }) {
@Override
protected void doExecute() throws Throwable {
ContinueAsNewWorkflowExecutionParameters _parameters_ = new ContinueAsNewWorkflowExecutionParameters();
Object[] _input_ = new Object[4];
_input_[0] = accountId.get();
_input_[1] = loadbalancer.get();
_input_[2] = availabilityZones.get();
_input_[3] = zoneToSubnetIdMap.get();
String _stringInput_ = dataConverter.toData(_input_);
_parameters_.setInput(_stringInput_);
_parameters_ = _parameters_.createContinueAsNewParametersFromOptions(schedulingOptions, schedulingOptionsOverride);
if (genericClient == null) {
genericClient = decisionContextProvider.getDecisionContext().getWorkflowClient();
}
genericClient.continueAsNewOnCompletion(_parameters_);
}
};
}
}