When an IOrder object is requested, is a reference to the original object returned, or are the IOrder objects constructed on request?
For example, in the following code, suppose orderA and orderB refer to IOrder objects corresponding to (the same one or two different) market orders.
assert(orderA != null && orderB != null);
boolean e1 = orderA == orderB;
boolean e2 = orderA.getId().equals(orderB.getId()));
Is it true that e1==e2, regardless of where and when orderA and orderB were obtained (e.g. from engine.submitOrder, message.getOrder, engine.getOrderById, etc)?