1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.api.ldap.model.schema.comparators;
21
22
23 import org.apache.directory.api.ldap.model.schema.LdapComparator;
24 import org.apache.directory.api.util.Strings;
25
26
27
28
29
30
31
32
33
34
35 public class ObjectClassTypeComparator<T> extends LdapComparator<T>
36 {
37
38 private static final long serialVersionUID = 2L;
39
40
41
42
43
44
45
46
47 public ObjectClassTypeComparator( String oid )
48 {
49 super( oid );
50 }
51
52
53
54
55
56 @Override
57 public int compare( T o1, T o2 )
58 {
59 String s1 = getString( o1 );
60 String s2 = getString( o2 );
61
62 if ( s1 == null && s2 == null )
63 {
64 return 0;
65 }
66
67 if ( s1 == null )
68 {
69 return -1;
70 }
71
72 if ( s2 == null )
73 {
74 return 1;
75 }
76
77 return s1.compareTo( s2 );
78 }
79
80
81 String getString( T obj )
82 {
83 String strValue;
84
85 if ( obj == null )
86 {
87 return null;
88 }
89
90 if ( obj instanceof String )
91 {
92 strValue = ( String ) obj;
93 }
94 else if ( obj instanceof byte[] )
95 {
96 strValue = Strings.utf8ToString( ( byte[] ) obj );
97 }
98 else
99 {
100 strValue = obj.toString();
101 }
102
103 return strValue;
104 }
105 }