Przeglądaj źródła

Renamed LegMatch to LegActivityMatch, more in line with the UL

peter_backlund 16 lat temu
rodzic
commit
02fced37d3

+ 15
- 14
dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/cargo/Itinerary.java Wyświetl plik

@@ -2,16 +2,17 @@ package se.citerus.dddsample.tracking.core.domain.model.cargo;
2 2
 
3 3
 import org.apache.commons.lang.StringUtils;
4 4
 import org.apache.commons.lang.Validate;
5
-import static se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEvent.Type.*;
6 5
 import se.citerus.dddsample.tracking.core.domain.model.location.Location;
7 6
 import se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity;
8
-import static se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity.claimIn;
9
-import static se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity.receiveIn;
10 7
 import se.citerus.dddsample.tracking.core.domain.model.voyage.Voyage;
11 8
 import se.citerus.dddsample.tracking.core.domain.patterns.valueobject.ValueObjectSupport;
12 9
 
13 10
 import java.util.*;
14 11
 
12
+import static se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEvent.Type.*;
13
+import static se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity.claimIn;
14
+import static se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity.receiveIn;
15
+
15 16
 /**
16 17
  * An itinerary.
17 18
  */
@@ -93,7 +94,7 @@ public class Itinerary extends ValueObjectSupport<Itinerary> {
93 94
    * @return <code>true</code> if the event is expected
94 95
    */
95 96
   boolean isExpectedActivity(final HandlingActivity handlingActivity) {
96
-    return legMatchOf(handlingActivity).leg() != null;
97
+    return matchLeg(handlingActivity).leg() != null;
97 98
   }
98 99
 
99 100
   /**
@@ -172,7 +173,7 @@ public class Itinerary extends ValueObjectSupport<Itinerary> {
172 173
     if (previousActivity == null) {
173 174
       return receiveIn(firstLeg().loadLocation());
174 175
     } else {
175
-      return deriveFromMatchingLeg(previousActivity, legMatchOf(previousActivity).leg());
176
+      return deriveFromMatchingLeg(previousActivity, matchLeg(previousActivity).leg());
176 177
     }
177 178
   }
178 179
 
@@ -182,8 +183,8 @@ public class Itinerary extends ValueObjectSupport<Itinerary> {
182 183
    * @return The activity which is strictly prior to the other, according to the itinerary, or null if neither is strictly prior.
183 184
    */
184 185
   HandlingActivity strictlyPriorOf(final HandlingActivity handlingActivity1, final HandlingActivity handlingActivity2) {
185
-    final LegMatch match1 = legMatchOf(handlingActivity1);
186
-    final LegMatch match2 = legMatchOf(handlingActivity2);
186
+    final LegActivityMatch match1 = matchLeg(handlingActivity1);
187
+    final LegActivityMatch match2 = matchLeg(handlingActivity2);
187 188
     final int compared = match1.compareTo(match2);
188 189
 
189 190
     if (compared < 0) {
@@ -213,13 +214,13 @@ public class Itinerary extends ValueObjectSupport<Itinerary> {
213 214
    * @param handlingActivity handling activity
214 215
    * @return The leg match of this handling activity. Never null.
215 216
    */
216
-  LegMatch legMatchOf(final HandlingActivity handlingActivity) {
217
+  LegActivityMatch matchLeg(final HandlingActivity handlingActivity) {
217 218
     if (handlingActivity == null) {
218
-      return LegMatch.noMatch(handlingActivity, this);
219
+      return LegActivityMatch.noMatch(handlingActivity, this);
219 220
     } else if (handlingActivity.type() == RECEIVE) {
220
-      return LegMatch.ifLoadLocationSame(firstLeg(), handlingActivity, this);
221
+      return LegActivityMatch.ifLoadLocationSame(firstLeg(), handlingActivity, this);
221 222
     } else if (handlingActivity.type() == CLAIM) {
222
-      return LegMatch.ifUnloadLocationSame(lastLeg(), handlingActivity, this);
223
+      return LegActivityMatch.ifUnloadLocationSame(lastLeg(), handlingActivity, this);
223 224
     } else {
224 225
       return findLegMatchingActivity(handlingActivity);
225 226
     }
@@ -239,14 +240,14 @@ public class Itinerary extends ValueObjectSupport<Itinerary> {
239 240
     return legs.get(legs.size() - 1);
240 241
   }
241 242
 
242
-  private LegMatch findLegMatchingActivity(final HandlingActivity handlingActivity) {
243
+  private LegActivityMatch findLegMatchingActivity(final HandlingActivity handlingActivity) {
243 244
     for (Leg leg : legs) {
244 245
       if (leg.matchesActivity(handlingActivity)) {
245
-        return LegMatch.match(leg, handlingActivity, this);
246
+        return LegActivityMatch.match(leg, handlingActivity, this);
246 247
       }
247 248
     }
248 249
 
249
-    return LegMatch.noMatch(handlingActivity, this);
250
+    return LegActivityMatch.noMatch(handlingActivity, this);
250 251
   }
251 252
 
252 253
   private HandlingActivity deriveFromMatchingLeg(final HandlingActivity handlingActivity, final Leg matchingLeg) {

dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/cargo/LegMatch.java → dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/cargo/LegActivityMatch.java Wyświetl plik

@@ -1,10 +1,11 @@
1 1
 package se.citerus.dddsample.tracking.core.domain.model.cargo;
2 2
 
3
-import static se.citerus.dddsample.tracking.core.domain.model.cargo.LegMatch.LegEnd.*;
4 3
 import se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity;
5 4
 import se.citerus.dddsample.tracking.core.domain.patterns.valueobject.ValueObjectSupport;
6 5
 
7
-class LegMatch extends ValueObjectSupport<LegMatch> implements Comparable<LegMatch> {
6
+import static se.citerus.dddsample.tracking.core.domain.model.cargo.LegActivityMatch.LegEnd.*;
7
+
8
+class LegActivityMatch extends ValueObjectSupport<LegActivityMatch> implements Comparable<LegActivityMatch> {
8 9
 
9 10
   private final Leg leg;
10 11
   private final LegEnd legEnd;
@@ -13,45 +14,45 @@ class LegMatch extends ValueObjectSupport<LegMatch> implements Comparable<LegMat
13 14
 
14 15
   enum LegEnd { LOAD_END, UNLOAD_END, NO_END }
15 16
 
16
-  private LegMatch(final Leg leg, final LegEnd legEnd, final HandlingActivity handlingActivity, final Itinerary itinerary) {
17
+  private LegActivityMatch(final Leg leg, final LegEnd legEnd, final HandlingActivity handlingActivity, final Itinerary itinerary) {
17 18
     this.leg = leg;
18 19
     this.legEnd = legEnd;
19 20
     this.handlingActivity = handlingActivity;
20 21
     this.itinerary = itinerary;
21 22
   }
22 23
 
23
-  static LegMatch match(final Leg leg, final HandlingActivity handlingActivity, final Itinerary itinerary) {
24
+  static LegActivityMatch match(final Leg leg, final HandlingActivity handlingActivity, final Itinerary itinerary) {
24 25
     switch (handlingActivity.type()) {
25 26
       case RECEIVE:
26 27
       case LOAD:
27
-        return new LegMatch(leg, LOAD_END, handlingActivity, itinerary);
28
+        return new LegActivityMatch(leg, LOAD_END, handlingActivity, itinerary);
28 29
       case UNLOAD:
29 30
       case CLAIM:
30 31
       case CUSTOMS:
31
-        return new LegMatch(leg, UNLOAD_END, handlingActivity, itinerary);
32
+        return new LegActivityMatch(leg, UNLOAD_END, handlingActivity, itinerary);
32 33
       default:
33 34
         return noMatch(handlingActivity, itinerary);
34 35
     }
35 36
   }
36 37
 
37
-  static LegMatch ifLoadLocationSame(final Leg leg, final HandlingActivity handlingActivity, final Itinerary itinerary) {
38
+  static LegActivityMatch ifLoadLocationSame(final Leg leg, final HandlingActivity handlingActivity, final Itinerary itinerary) {
38 39
     if (leg.loadLocation().sameAs(handlingActivity.location())) {
39
-      return new LegMatch(leg, LOAD_END, handlingActivity, itinerary);
40
+      return new LegActivityMatch(leg, LOAD_END, handlingActivity, itinerary);
40 41
     } else {
41 42
       return noMatch(handlingActivity, itinerary);
42 43
     }
43 44
   }
44 45
 
45
-  static LegMatch ifUnloadLocationSame(final Leg leg, final HandlingActivity handlingActivity, final Itinerary itinerary) {
46
+  static LegActivityMatch ifUnloadLocationSame(final Leg leg, final HandlingActivity handlingActivity, final Itinerary itinerary) {
46 47
     if (leg.unloadLocation().sameAs(handlingActivity.location())) {
47
-      return new LegMatch(leg, UNLOAD_END, handlingActivity, itinerary);
48
+      return new LegActivityMatch(leg, UNLOAD_END, handlingActivity, itinerary);
48 49
     } else {
49 50
       return noMatch(handlingActivity, itinerary);
50 51
     }
51 52
   }
52 53
 
53
-  static LegMatch noMatch(final HandlingActivity handlingActivity, final Itinerary itinerary) {
54
-    return new LegMatch(null, NO_END, handlingActivity, itinerary);
54
+  static LegActivityMatch noMatch(final HandlingActivity handlingActivity, final Itinerary itinerary) {
55
+    return new LegActivityMatch(null, NO_END, handlingActivity, itinerary);
55 56
   }
56 57
 
57 58
   Leg leg() {
@@ -63,7 +64,7 @@ class LegMatch extends ValueObjectSupport<LegMatch> implements Comparable<LegMat
63 64
   }
64 65
 
65 66
   @Override
66
-  public int compareTo(final LegMatch other) {
67
+  public int compareTo(final LegActivityMatch other) {
67 68
     final Integer thisLegIndex = itinerary.legs().indexOf(this.leg);
68 69
     final Integer otherLegIndex = itinerary.legs().indexOf(other.leg);
69 70
 

+ 9
- 8
dddsample/tracking/core/src/test/java/se/citerus/dddsample/tracking/core/domain/model/cargo/CargoTest.java Wyświetl plik

@@ -1,21 +1,22 @@
1 1
 package se.citerus.dddsample.tracking.core.domain.model.cargo;
2 2
 
3 3
 import junit.framework.TestCase;
4
+import se.citerus.dddsample.tracking.core.domain.model.location.Location;
5
+import se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity;
6
+import se.citerus.dddsample.tracking.core.domain.model.voyage.Voyage;
7
+import se.citerus.dddsample.tracking.core.domain.model.voyage.VoyageNumber;
8
+
9
+import java.util.Date;
10
+
4 11
 import static org.hamcrest.core.Is.is;
5 12
 import static org.junit.Assert.assertThat;
6 13
 import static se.citerus.dddsample.tracking.core.application.util.DateTestUtil.toDate;
7 14
 import static se.citerus.dddsample.tracking.core.domain.model.cargo.RoutingStatus.*;
8 15
 import static se.citerus.dddsample.tracking.core.domain.model.cargo.TransportStatus.*;
9 16
 import static se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEvent.Type.*;
10
-import se.citerus.dddsample.tracking.core.domain.model.location.Location;
11 17
 import static se.citerus.dddsample.tracking.core.domain.model.location.SampleLocations.*;
12
-import se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity;
13 18
 import static se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity.*;
14 19
 import static se.citerus.dddsample.tracking.core.domain.model.voyage.SampleVoyages.*;
15
-import se.citerus.dddsample.tracking.core.domain.model.voyage.Voyage;
16
-import se.citerus.dddsample.tracking.core.domain.model.voyage.VoyageNumber;
17
-
18
-import java.util.Date;
19 20
 
20 21
 public class CargoTest extends TestCase {
21 22
 
@@ -269,11 +270,11 @@ public class CargoTest extends TestCase {
269 270
     assertTrue(cargo.routingStatus() == MISROUTED);
270 271
 
271 272
     /**
272
-     * This is a perfect example of how LegMatch is a modelling breakthrough.
273
+     * This is a perfect example of how LegActivityMatch is a modelling breakthrough.
273 274
      * It allows us to easily construct an itinerary that completes the remainder of the
274 275
      * old itinerary and appends the new and different path.
275 276
      */
276
-    Leg currentLeg = cargo.itinerary().legMatchOf(cargo.mostRecentHandlingActivity()).leg();
277
+    Leg currentLeg = cargo.itinerary().matchLeg(cargo.mostRecentHandlingActivity()).leg();
277 278
     Itinerary newItinerary = new Itinerary(
278 279
       currentLeg,
279 280
       Leg.deriveLeg(continental3, SEATTLE, NEWYORK)

+ 17
- 16
dddsample/tracking/core/src/test/java/se/citerus/dddsample/tracking/core/domain/model/cargo/ItineraryTest.java Wyświetl plik

@@ -1,13 +1,7 @@
1 1
 package se.citerus.dddsample.tracking.core.domain.model.cargo;
2 2
 
3 3
 import junit.framework.TestCase;
4
-import static org.hamcrest.core.Is.is;
5
-import static org.hamcrest.core.IsEqual.equalTo;
6
-import static org.junit.Assert.assertThat;
7
-import static se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEvent.Type.*;
8
-import static se.citerus.dddsample.tracking.core.domain.model.location.SampleLocations.*;
9 4
 import se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity;
10
-import static se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity.*;
11 5
 import se.citerus.dddsample.tracking.core.domain.model.voyage.Voyage;
12 6
 import se.citerus.dddsample.tracking.core.domain.model.voyage.VoyageNumber;
13 7
 
@@ -15,6 +9,13 @@ import java.util.ArrayList;
15 9
 import java.util.Date;
16 10
 import java.util.List;
17 11
 
12
+import static org.hamcrest.core.Is.is;
13
+import static org.hamcrest.core.IsEqual.equalTo;
14
+import static org.junit.Assert.assertThat;
15
+import static se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEvent.Type.*;
16
+import static se.citerus.dddsample.tracking.core.domain.model.location.SampleLocations.*;
17
+import static se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity.*;
18
+
18 19
 public class ItineraryTest extends TestCase {
19 20
 
20 21
   Voyage voyage, wrongVoyage, pacific, transcontinental, atlantic;
@@ -102,19 +103,19 @@ public class ItineraryTest extends TestCase {
102 103
     Leg rotterdamToGothenburg = Leg.deriveLeg(voyage, ROTTERDAM, GOTHENBURG);
103 104
     Itinerary itinerary = new Itinerary(shanghaiToRotterdam, rotterdamToGothenburg);
104 105
 
105
-    assertThat(itinerary.legMatchOf(receiveIn(SHANGHAI)).leg(), is(shanghaiToRotterdam));
106
-    assertThat(itinerary.legMatchOf(loadOnto(voyage).in(SHANGHAI)).leg(), is(shanghaiToRotterdam));
107
-    assertThat(itinerary.legMatchOf(unloadOff(voyage).in(ROTTERDAM)).leg(), is(shanghaiToRotterdam));
108
-    assertThat(itinerary.legMatchOf(claimIn(GOTHENBURG)).leg(), is(rotterdamToGothenburg));
106
+    assertThat(itinerary.matchLeg(receiveIn(SHANGHAI)).leg(), is(shanghaiToRotterdam));
107
+    assertThat(itinerary.matchLeg(loadOnto(voyage).in(SHANGHAI)).leg(), is(shanghaiToRotterdam));
108
+    assertThat(itinerary.matchLeg(unloadOff(voyage).in(ROTTERDAM)).leg(), is(shanghaiToRotterdam));
109
+    assertThat(itinerary.matchLeg(claimIn(GOTHENBURG)).leg(), is(rotterdamToGothenburg));
109 110
 
110
-    assertNull(itinerary.legMatchOf(loadOnto(wrongVoyage).in(SHANGHAI)).leg());
111
-    assertNull(itinerary.legMatchOf(loadOnto(wrongVoyage).in(NEWYORK)).leg());
111
+    assertNull(itinerary.matchLeg(loadOnto(wrongVoyage).in(SHANGHAI)).leg());
112
+    assertNull(itinerary.matchLeg(loadOnto(wrongVoyage).in(NEWYORK)).leg());
112 113
 
113
-    assertNull(itinerary.legMatchOf(unloadOff(wrongVoyage).in(ROTTERDAM)).leg());
114
-    assertNull(itinerary.legMatchOf(unloadOff(wrongVoyage).in(NEWYORK)).leg());
114
+    assertNull(itinerary.matchLeg(unloadOff(wrongVoyage).in(ROTTERDAM)).leg());
115
+    assertNull(itinerary.matchLeg(unloadOff(wrongVoyage).in(NEWYORK)).leg());
115 116
 
116
-    assertNull(itinerary.legMatchOf(receiveIn(NEWYORK)).leg());
117
-    assertNull(itinerary.legMatchOf(claimIn(NEWYORK)).leg());
117
+    assertNull(itinerary.matchLeg(receiveIn(NEWYORK)).leg());
118
+    assertNull(itinerary.matchLeg(claimIn(NEWYORK)).leg());
118 119
   }
119 120
 
120 121
   public void testNextLeg() {

dddsample/tracking/core/src/test/java/se/citerus/dddsample/tracking/core/domain/model/cargo/LegMatchTest.java → dddsample/tracking/core/src/test/java/se/citerus/dddsample/tracking/core/domain/model/cargo/LegActivityMatchTest.java Wyświetl plik

@@ -15,7 +15,7 @@ import static se.citerus.dddsample.tracking.core.domain.model.voyage.SampleVoyag
15 15
 import static se.citerus.dddsample.tracking.core.domain.model.voyage.SampleVoyages.pacific1;
16 16
 
17 17
 @RunWith(JUnit4ClassRunner.class)
18
-public class LegMatchTest {
18
+public class LegActivityMatchTest {
19 19
 
20 20
   @Test
21 21
   public void compareMatches() {
@@ -24,21 +24,21 @@ public class LegMatchTest {
24 24
       deriveLeg(continental2, LONGBEACH, DALLAS)
25 25
     );
26 26
 
27
-    LegMatch startMatch = LegMatch.match(
27
+    LegActivityMatch startMatch = LegActivityMatch.match(
28 28
       deriveLeg(pacific1, TOKYO, LONGBEACH),
29 29
       loadOnto(pacific1).in(TOKYO), itinerary);
30 30
 
31 31
     assertThat(startMatch.handlingActivity(), equalTo(loadOnto(pacific1).in(TOKYO)));
32 32
     assertThat(startMatch.leg(), equalTo(deriveLeg(pacific1, TOKYO, LONGBEACH)));
33 33
 
34
-    LegMatch endMatch = LegMatch.match(
34
+    LegActivityMatch endMatch = LegActivityMatch.match(
35 35
       deriveLeg(pacific1, TOKYO, LONGBEACH),
36 36
       unloadOff(pacific1).in(LONGBEACH), itinerary);
37 37
 
38 38
     assertThat(endMatch.handlingActivity(), equalTo(unloadOff(pacific1).in(LONGBEACH)));
39 39
     assertThat(endMatch.leg(), equalTo(deriveLeg(pacific1, TOKYO, LONGBEACH)));
40 40
 
41
-    LegMatch nextMatch = LegMatch.match(
41
+    LegActivityMatch nextMatch = LegActivityMatch.match(
42 42
       deriveLeg(continental2, LONGBEACH, DALLAS),
43 43
       loadOnto(continental2).in(LONGBEACH), itinerary);
44 44