Bladeren bron

Double-check received itineraries against route specification before returning them to caller.

peter_backlund 18 jaren geleden
bovenliggende
commit
66655da85a

+ 5
- 2
dddsample/src/main/java/se/citerus/dddsample/application/routing/ExternalRoutingService.java Bestand weergeven

@@ -39,11 +39,14 @@ public class ExternalRoutingService implements RoutingService {
39 39
       destination.unLocode().idString()
40 40
     );
41 41
     
42
-    final List<Itinerary> itineraries = new ArrayList<Itinerary>(transitPaths.size());
42
+    final List<Itinerary> itineraries = new ArrayList<Itinerary>();
43 43
 
44 44
     for (TransitPath transitPath : transitPaths) {
45 45
       final Itinerary itinerary = toItinerary(transitPath);
46
-      itineraries.add(itinerary);
46
+      // Use the specification to safe-guard against invalid itineraries
47
+      if (routeSpecification.isSatisfiedBy(itinerary)) {
48
+        itineraries.add(itinerary);
49
+      }
47 50
     }
48 51
 
49 52
     return itineraries;