1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.directory.modules.multiview.util;
35
36 import java.io.Serializable;
37 import java.util.Comparator;
38
39 import org.apache.commons.lang3.math.NumberUtils;
40
41 import fr.paris.lutece.util.ReferenceItem;
42
43
44
45
46 public class ReferenceItemComparator implements Comparator<ReferenceItem>, Serializable
47 {
48
49 private static final long serialVersionUID = -177021185525287854L;
50
51
52
53
54 @Override
55 public int compare( ReferenceItem referenceItemOne, ReferenceItem referenceItemTwo )
56 {
57 int nComparisonResult = NumberUtils.INTEGER_ZERO;
58
59 if ( referenceItemOne != null )
60 {
61 if ( referenceItemTwo != null )
62 {
63 String strReferenceItemNameOne = referenceItemOne.getName( );
64 String strReferenceItemNameTwo = referenceItemTwo.getName( );
65
66 nComparisonResult = compareReferenceItemName( strReferenceItemNameOne, strReferenceItemNameTwo );
67 }
68 else
69 {
70 nComparisonResult = NumberUtils.INTEGER_ONE;
71 }
72 }
73 else
74 {
75 if ( referenceItemTwo != null )
76 {
77 nComparisonResult = NumberUtils.INTEGER_MINUS_ONE;
78 }
79 else
80 {
81 nComparisonResult = NumberUtils.INTEGER_ZERO;
82 }
83 }
84
85 return nComparisonResult;
86 }
87
88
89
90
91
92
93
94
95
96
97 private int compareReferenceItemName( String strReferenceItemNameOne, String strReferenceItemNameTwo )
98 {
99 int nComparisonResult = NumberUtils.INTEGER_ZERO;
100
101 if ( strReferenceItemNameOne == null )
102 {
103 if ( strReferenceItemNameTwo != null )
104 {
105 nComparisonResult = NumberUtils.INTEGER_MINUS_ONE;
106 }
107 }
108 else
109 {
110 if ( strReferenceItemNameTwo == null )
111 {
112 nComparisonResult = NumberUtils.INTEGER_ONE;
113 }
114 else
115 {
116 nComparisonResult = strReferenceItemNameOne.compareTo( strReferenceItemNameTwo );
117 }
118 }
119
120 return nComparisonResult;
121 }
122 }