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 public ObjectClassTypeComparator( String oid )
47 {
48 super( oid );
49 }
50
51
52
53
54
55 @Override
56 public int compare( T o1, T o2 )
57 {
58 String s1 = getString( o1 );
59 String s2 = getString( o2 );
60
61 if ( s1 == null && s2 == null )
62 {
63 return 0;
64 }
65
66 if ( s1 == null )
67 {
68 return -1;
69 }
70
71 if ( s2 == null )
72 {
73 return 1;
74 }
75
76 return s1.compareTo( s2 );
77 }
78
79
80 String getString( T obj )
81 {
82 String strValue;
83
84 if ( obj == null )
85 {
86 return null;
87 }
88
89 if ( obj instanceof String )
90 {
91 strValue = ( String ) obj;
92 }
93 else if ( obj instanceof byte[] )
94 {
95 strValue = Strings.utf8ToString( ( byte[] ) obj );
96 }
97 else
98 {
99 strValue = obj.toString();
100 }
101
102 return strValue;
103 }
104 }