1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.mavibot.btree.comparator;
21
22
23 import java.util.Comparator;
24
25
26
27
28
29
30
31 public class CharArrayComparator implements Comparator<char[]>
32 {
33
34
35
36
37
38
39
40 public int compare( char[] charArray1, char[] charArray2 )
41 {
42 if ( charArray1 == charArray2 )
43 {
44 return 0;
45 }
46
47 if ( charArray1 == null )
48 {
49 if ( charArray2 == null )
50 {
51 return 0;
52 }
53 else
54 {
55 return -1;
56 }
57 }
58 else
59 {
60 if ( charArray2 == null )
61 {
62 return 1;
63 }
64 else
65 {
66 if ( charArray1.length < charArray2.length )
67 {
68 int pos = 0;
69
70 for ( char char1 : charArray1 )
71 {
72 char char2 = charArray2[pos];
73
74 if ( char1 == char2 )
75 {
76 pos++;
77 }
78 else if ( char1 < char2 )
79 {
80 return -1;
81 }
82 else
83 {
84 return 1;
85 }
86 }
87
88 return -1;
89 }
90 else
91 {
92 int pos = 0;
93
94 for ( char char2 : charArray2 )
95 {
96 char char1 = charArray1[pos];
97
98 if ( char1 == char2 )
99 {
100 pos++;
101 }
102 else if ( char1 < char2 )
103 {
104 return -1;
105 }
106 else
107 {
108 return 1;
109 }
110 }
111
112 if ( pos < charArray1.length )
113 {
114 return 1;
115 }
116 else
117 {
118 return 0;
119 }
120 }
121 }
122 }
123
124 }
125 }