![JAR search and dependency download from the Maven repository](/logo.png)
com.logicommerce.sdk.models.queues.OrderQueueMessage Maven / Gradle / Ivy
package com.logicommerce.sdk.models.queues;
import java.util.Set;
import com.logicommerce.sdk.models.order.Order;
/**
* Message to be sent to the queue for order message type
*
* @author LogiCommerce
* @since 1.2.0
*/
public final class OrderQueueMessage extends QueueMessage {
private final Integer orderId;
/**
* OrderQueueMessage constructor
*
* @param action a {@link String} object
* @param attributes a {@link Set} object
* @param settings a {@link Settings} object
* @param order a {@link Order} object
*/
public OrderQueueMessage(String action, Set attributes, Settings settings, Order order) {
super(action, attributes, settings);
Validator.validateNotNull("Order", order);
Validator.validateNotNull("Order id", order.getId());
this.orderId = order.getId();
}
/**
* Returns the type of the message
* @return a {@link QueueMessageType} object
*/
@Override
public QueueMessageType getType() {
return QueueMessageType.ORDER;
}
/**
* Returns the order id
* @return a {@link Integer} object
*/
public Integer getOrderId() {
return orderId;
}
/**
* Creates a Builder for the OrderQueueMessage
*
* @return a {@link Builder} object
*/
public static Builder builder() {
return new Builder();
}
/**
* Builder for the OrderQueueMessage
*/
public static final class Builder extends QueueMessageBuilder {
private Order order;
/**
* Sets the order
*
* @param order a {@link Order} object
* @return a {@link Builder} object
*/
public Builder order(Order order) {
this.order = order;
return this;
}
@Override
protected Builder returnThis() {
return this;
}
@Override
protected OrderQueueMessage build(String action, Set attributes, Settings settings) {
return new OrderQueueMessage(action, attributes, settings, order);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy