1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.promotego.logic.storehours;
20
21 import java.util.Comparator;
22
23 import org.apache.commons.lang.math.IntRange;
24
25 /***
26 * @author alf
27 *
28 */
29 public class HourSpecificationComparator implements
30 Comparator<HourSpecification>
31 {
32 public int compare(HourSpecification arg0, HourSpecification arg1)
33 {
34 Day minDay0 = getMinimumDay(arg0);
35 Day minDay1 = getMinimumDay(arg1);
36
37 int retval = minDay0.compareTo(minDay1);
38 if (retval != 0)
39 {
40 return retval;
41 }
42 else
43 {
44
45
46 IntRange range0 = arg0.getSecondRanges().get(0);
47 IntRange range1 = arg1.getSecondRanges().get(0);
48 retval = range0.getMinimumInteger() - range1.getMinimumInteger();
49 if (retval != 0)
50 {
51 return retval;
52 }
53 else
54 {
55 return range0.getMaximumInteger() - range1.getMaximumInteger();
56 }
57 }
58 }
59
60 private Day getMinimumDay(HourSpecification arg0)
61 {
62 Day retval = null;
63 for (Day thisDay : arg0.getDays())
64 {
65 if (retval == null)
66 {
67 retval = thisDay;
68 }
69 else
70 {
71 if (thisDay.ordinal() < retval.ordinal())
72 {
73 retval = thisDay;
74 }
75 }
76 }
77
78 return retval;
79 }
80 }