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

io.sphere.client.shop.CreateOrderBuilder Maven / Gradle / Ivy

There is a newer version: 0.72.1
Show newest version
package io.sphere.client.shop;

import com.google.common.base.Optional;
import io.sphere.client.model.VersionedId;
import io.sphere.client.shop.model.PaymentState;
import io.sphere.internal.command.CartCommands;
import net.jcip.annotations.NotThreadSafe;

/**
 * Builder to create data for creating an order.
 */
@NotThreadSafe
public class CreateOrderBuilder {
    private VersionedId cartId;
    private PaymentState paymentState;
    private Optional cartSnapshotId = Optional.absent();
    private Optional orderNumber = Optional.absent();

    public CreateOrderBuilder(VersionedId cartId, PaymentState paymentState) {
        this.cartId = cartId;
        this.paymentState = paymentState;
    }

    public VersionedId getCartId() { return cartId; }

    public PaymentState getPaymentState() { return paymentState; }

    public Optional getCartSnapshotId() { return cartSnapshotId; }

    public Optional getOrderNumber() { return orderNumber; }

    public CreateOrderBuilder setCartSnapshotId(final String cartSnapshotId) {
        this.cartSnapshotId = Optional.fromNullable(cartSnapshotId);
        return this;
    }

    public CreateOrderBuilder setOrderNumber(final String orderNumber) {
        this.orderNumber = Optional.fromNullable(orderNumber);
        return this;
    }

    public CartCommands.OrderCart build() {
        return new CartCommands.OrderCart(cartId.getId(), cartId.getVersion(), paymentState, orderNumber);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy