Why do we need these setter and getter? To me, more natural would be to perform this "ship items" action on particular shipment and then update order state accordingly, depending on whether all stuff is shipped. That's what for state resolver is.