// Path: cqrs-lib/src/main/java/se/citerus/cqrs/bookstore/command/Command.java
// public abstract class Command {
// 
//   @Override
//   public boolean equals(Object o) {
//     return EqualsBuilder.reflectionEquals(this, o);
//   }
// 
//   @Override
//   public int hashCode() {
//     return HashCodeBuilder.reflectionHashCode(this);
//   }
// 
//   @Override
//   public String toString() {
//     return ToStringBuilder.reflectionToString(this, SHORT_PREFIX_STYLE);
//   }
// 
// }
// 
// Path: order-context-parent/eventbus-contract/src/main/java/se/citerus/cqrs/bookstore/ordercontext/order/OrderId.java
// public class OrderId extends GenericId {
// 
//   public OrderId(@JsonProperty("id") String id) {
//     super(id);
//   }
// 
//   public static OrderId randomId() {
//     return new OrderId(UUID.randomUUID().toString());
//   }
// 
// }
// 
// Path: order-context-parent/order-command/src/main/java/se/citerus/cqrs/bookstore/ordercontext/order/domain/CustomerInformation.java
// public class CustomerInformation extends ValueObject {
// 
//   public final String customerName;
//   public final String email;
//   public final String address;
// 
//   public CustomerInformation(String customerName, String email, String address) {
//     this.customerName = customerName;
//     this.email = email;
//     this.address = address;
//   }
// 
// }
// 
// Path: order-context-parent/order-command/src/main/java/se/citerus/cqrs/bookstore/ordercontext/order/domain/OrderLine.java
// public class OrderLine extends ValueObject {
// 
//   public final ProductId productId;
//   public final String title;
//   public final int quantity;
//   public final long unitPrice;
// 
//   public OrderLine(ProductId productId, String title, int quantity, long unitPrice) {
//     this.productId = productId;
//     this.title = title;
//     this.quantity = quantity;
//     this.unitPrice = unitPrice;
//   }
// 
// }


import se.citerus.cqrs.bookstore.command.Command;
import se.citerus.cqrs.bookstore.ordercontext.order.OrderId;
import se.citerus.cqrs.bookstore.ordercontext.order.domain.CustomerInformation;
import se.citerus.cqrs.bookstore.ordercontext.order.domain.OrderLine;
import java.util.Collections;
import java.util.List;
import static com.google.common.base.Preconditions.checkArgument;
package se.citerus.cqrs.bookstore.ordercontext.order.command;




public class PlaceOrderCommand extends Command {

  public final OrderId orderId;
  public final CustomerInformation customerInformation;
// Path: cqrs-lib/src/main/java/se/citerus/cqrs/bookstore/command/Command.java
// public abstract class Command {
// 
//   @Override
//   public boolean equals(Object o) {
//     return EqualsBuilder.reflectionEquals(this, o);
//   }
// 
//   @Override
//   public int hashCode() {
//     return HashCodeBuilder.reflectionHashCode(this);
//   }
// 
//   @Override
//   public String toString() {
//     return ToStringBuilder.reflectionToString(this, SHORT_PREFIX_STYLE);
//   }
// 
// }
// 
// Path: order-context-parent/eventbus-contract/src/main/java/se/citerus/cqrs/bookstore/ordercontext/order/OrderId.java
// public class OrderId extends GenericId {
// 
//   public OrderId(@JsonProperty("id") String id) {
//     super(id);
//   }
// 
//   public static OrderId randomId() {
//     return new OrderId(UUID.randomUUID().toString());
//   }
// 
// }
// 
// Path: order-context-parent/order-command/src/main/java/se/citerus/cqrs/bookstore/ordercontext/order/domain/CustomerInformation.java
// public class CustomerInformation extends ValueObject {
// 
//   public final String customerName;
//   public final String email;
//   public final String address;
// 
//   public CustomerInformation(String customerName, String email, String address) {
//     this.customerName = customerName;
//     this.email = email;
//     this.address = address;
//   }
// 
// }
// 
// Path: order-context-parent/order-command/src/main/java/se/citerus/cqrs/bookstore/ordercontext/order/domain/OrderLine.java
// public class OrderLine extends ValueObject {
// 
//   public final ProductId productId;
//   public final String title;
//   public final int quantity;
//   public final long unitPrice;
// 
//   public OrderLine(ProductId productId, String title, int quantity, long unitPrice) {
//     this.productId = productId;
//     this.title = title;
//     this.quantity = quantity;
//     this.unitPrice = unitPrice;
//   }
// 
// }


// Path: order-context-parent/order-command/src/main/java/se/citerus/cqrs/bookstore/ordercontext/order/command/PlaceOrderCommand.java
import se.citerus.cqrs.bookstore.command.Command;
import se.citerus.cqrs.bookstore.ordercontext.order.OrderId;
import se.citerus.cqrs.bookstore.ordercontext.order.domain.CustomerInformation;
import se.citerus.cqrs.bookstore.ordercontext.order.domain.OrderLine;
import java.util.Collections;
import java.util.List;
import static com.google.common.base.Preconditions.checkArgument;

package se.citerus.cqrs.bookstore.ordercontext.order.command;




public class PlaceOrderCommand extends Command {

  public final OrderId orderId;
  public final CustomerInformation customerInformation;
  public final List<OrderLine> orderLines;