io.sphere.sdk.customers.commands.CustomerUpdateCommand Maven / Gradle / Ivy
/*
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.customers.Customer.
To render this class the handlebars template 'commands/updateCommandInterface.hbs' has been used.
*/
package io.sphere.sdk.customers.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.customers.Customer;
import io.sphere.sdk.customers.expansion.CustomerExpansionModel;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static io.sphere.sdk.client.SphereRequestUtils.urlEncode;
/**
Updates a customer.
To update the properties {@link Customer#isEmailVerified()} or {@link Customer#getPassword()} special commands are required which are documented in the {@link Customer customer Javadoc}.
{@doc.gen list actions}
@see Customer
*/
public interface CustomerUpdateCommand extends UpdateCommandDsl, MetaModelReferenceExpansionDsl> {
/**
Creates a command to update a Customer selected by its ID using several update actions.
@param versioned the object to update (so directly a {@link Customer}) or just the version/ID information of it
@param updateActions the updates
@return the update command for Customer
*/
static CustomerUpdateCommand of(final Versioned versioned, final List extends UpdateAction> updateActions) {
return new CustomerUpdateCommandImpl(versioned, updateActions);
}
/**
Creates a command to update a Customer selected by its ID using one update action.
@param versioned the object to update (so directly a {@link Customer}) 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 Customer
*/
@SafeVarargs
static CustomerUpdateCommand 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 CustomerUpdateCommandImpl(versioned, actions);
}
/**
Creates a command to update a Customer selected by its key using several update actions.
@param key the key of the Customer to update, see {@link Customer#getKey()}
@param version the current version of the Customer, see {@link Customer#getVersion()}
@param updateActions the updates
@return the update command for Customer
*/
static CustomerUpdateCommand 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 CustomerUpdateCommandImpl(versioned, updateActions);
}
/**
Creates a command to update a Customer selected by its key using one update action.
@param key the key of the Customer to update, see {@link Customer#getKey()}
@param version the current version of the Customer, see {@link Customer#getVersion()}
@param updateAction the update to perform
@return the update command for Customer
*/
static CustomerUpdateCommand ofKey(final String key, final Long version, final UpdateAction updateAction) {
return ofKey(key, version, Collections.singletonList(updateAction));
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy