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 public class ObjectClassTypeComparator<T> extends LdapComparator<T>
34 {
35
36 private static final long serialVersionUID = 2L;
37
38
39 public ObjectClassTypeComparator( String oid )
40 {
41 super( oid );
42 }
43
44
45 public int compare( T o1, T o2 )
46 {
47 String s1 = getString( o1 );
48 String s2 = getString( o2 );
49
50 if ( s1 == null && s2 == null )
51 {
52 return 0;
53 }
54
55 if ( s1 == null )
56 {
57 return -1;
58 }
59
60 if ( s2 == null )
61 {
62 return 1;
63 }
64
65 return s1.compareTo( s2 );
66 }
67
68
69 String getString( T obj )
70 {
71 String strValue;
72
73 if ( obj == null )
74 {
75 return null;
76 }
77
78 if ( obj instanceof String )
79 {
80 strValue = ( String ) obj;
81 }
82 else if ( obj instanceof byte[] )
83 {
84 strValue = Strings.utf8ToString( ( byte[] ) obj );
85 }
86 else
87 {
88 strValue = obj.toString();
89 }
90
91 return strValue;
92 }
93 }