|
|
@@ -60,6 +60,7 @@ public final class BookingServiceImpl implements BookingService {
|
|
60
|
60
|
@Override
|
|
61
|
61
|
@Transactional
|
|
62
|
62
|
public void assignCargoToRoute(final Itinerary itinerary, final TrackingId trackingId) {
|
|
|
63
|
+ // TODO locking semantics
|
|
63
|
64
|
final Cargo cargo = cargoRepository.find(trackingId);
|
|
64
|
65
|
Validate.notNull(cargo, "Can't assign itinerary to non-existing cargo " + trackingId);
|
|
65
|
66
|
cargo.assignToRoute(itinerary);
|
|
|
@@ -71,6 +72,7 @@ public final class BookingServiceImpl implements BookingService {
|
|
71
|
72
|
@Override
|
|
72
|
73
|
@Transactional
|
|
73
|
74
|
public void changeDestination(final TrackingId trackingId, final UnLocode unLocode) {
|
|
|
75
|
+ // TODO locking semantics
|
|
74
|
76
|
final Cargo cargo = cargoRepository.find(trackingId);
|
|
75
|
77
|
Validate.notNull(cargo, "Can't change destination of non-existing cargo " + trackingId);
|
|
76
|
78
|
final Location newDestination = locationRepository.find(unLocode);
|
|
|
@@ -82,4 +84,12 @@ public final class BookingServiceImpl implements BookingService {
|
|
82
|
84
|
logger.info("Changed destination for cargo " + trackingId + " to " + routeSpecification.destination());
|
|
83
|
85
|
}
|
|
84
|
86
|
|
|
|
87
|
+ @Override
|
|
|
88
|
+ @Transactional
|
|
|
89
|
+ public Cargo loadCargoForRouting(TrackingId trackingId) {
|
|
|
90
|
+ // TODO locking semantics
|
|
|
91
|
+ final Cargo cargo = cargoRepository.find(trackingId);
|
|
|
92
|
+ return cargo;
|
|
|
93
|
+ }
|
|
|
94
|
+
|
|
85
|
95
|
}
|