io.sphere.sdk.shippingmethods.commands.ShippingMethodUpdateCommand Maven / Gradle / Ivy
The newest version!
/*
This class has been generated by class io.sphere.sdk.annotations.processors.UpdateCommandEndpointAnnotationProcessor
induced by the annotation io.sphere.sdk.annotations.HasUpdateCommand.
in the source class io.sphere.sdk.shippingmethods.ShippingMethod.
To render this class the handlebars template 'commands/updateCommandInterface.hbs' has been used.
*/
package io.sphere.sdk.shippingmethods.commands;
import io.sphere.sdk.commands.UpdateAction;
import io.sphere.sdk.commands.UpdateCommandDsl;
import io.sphere.sdk.expansion.MetaModelReferenceExpansionDsl;
import io.sphere.sdk.models.Versioned;
import io.sphere.sdk.shippingmethods.ShippingMethod;
import io.sphere.sdk.shippingmethods.expansion.ShippingMethodExpansionModel;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static io.sphere.sdk.client.SphereRequestUtils.urlEncode;
/**
Command object to update a {@link ShippingMethod}.
{@doc.gen list actions}
@see ShippingMethod
*/
public interface ShippingMethodUpdateCommand extends UpdateCommandDsl, MetaModelReferenceExpansionDsl> {
/**
Creates a command to update a ShippingMethod selected by its ID using several update actions.
@param versioned the object to update (so directly a {@link ShippingMethod}) or just the version/ID information of it
@param updateActions the updates
@return the update command for ShippingMethod
*/
static ShippingMethodUpdateCommand of(final Versioned versioned, final List extends UpdateAction> updateActions) {
return new ShippingMethodUpdateCommandImpl(versioned, updateActions);
}
/**
Creates a command to update a ShippingMethod selected by its ID using one update action.
@param versioned the object to update (so directly a {@link ShippingMethod}) or just the version/ID information of it
@param updateAction the update to perform
@param updateActions additional updates to perform
@return the update command for ShippingMethod
*/
@SafeVarargs
static ShippingMethodUpdateCommand of(final Versioned versioned, final UpdateAction updateAction, final UpdateAction... updateActions) {
final List> actions = new ArrayList<>();
actions.add(updateAction);
actions.addAll(Arrays.asList(updateActions));
return new ShippingMethodUpdateCommandImpl(versioned, actions);
}
/**
Creates a command to update a ShippingMethod selected by its key using several update actions.
@param key the key of the ShippingMethod to update, see {@link ShippingMethod#getKey()}
@param version the current version of the ShippingMethod, see {@link ShippingMethod#getVersion()}
@param updateActions the updates
@return the update command for ShippingMethod
*/
static ShippingMethodUpdateCommand ofKey(final String key, final Long version, final List extends UpdateAction> updateActions) {
final Versioned versioned = Versioned.of("key=" + urlEncode(key), version);//hack for simple reuse
return new ShippingMethodUpdateCommandImpl(versioned, updateActions);
}
/**
Creates a command to update a ShippingMethod selected by its key using one update action.
@param key the key of the ShippingMethod to update, see {@link ShippingMethod#getKey()}
@param version the current version of the ShippingMethod, see {@link ShippingMethod#getVersion()}
@param updateAction the update to perform
@return the update command for ShippingMethod
*/
static ShippingMethodUpdateCommand ofKey(final String key, final Long version, final UpdateAction updateAction) {
return ofKey(key, version, Collections.singletonList(updateAction));
}
}