Source code: com/webobjects/woextensions/_ClassNameComparator.java
1 /*
2 * _ClassNameComparator.java
3 * © Copyright 2001 Apple Computer, Inc. All rights reserved.
4 * This a modified version.
5 * Original license: http://www.opensource.apple.com/apsl/
6 */
7
8 package com.webobjects.woextensions;
9
10 import com.webobjects.appserver.*;
11 import com.webobjects.foundation.*;
12 import com.webobjects.eocontrol.*;
13
14 public class _ClassNameComparator extends NSComparator {
15 protected boolean _compareAscending;
16
17 public _ClassNameComparator(NSSelector comparator) {
18 super();
19 _compareAscending = (comparator == EOSortOrdering.CompareAscending) ;
20 }
21
22 public int compare(Object c1, Object c2) throws NSComparator.ComparisonException {
23 if (!(c1 instanceof Class) || !(c2 instanceof Class) || (c1 == null) || (c2 == null))
24 throw new NSComparator.ComparisonException("<"+getClass().getName()+" Unable to compare classes. Either one of the arguments is not a Class or is null. Comparison was made with " + c1 + " and " + c2 + "." );
25
26 Class class1, class2;
27 class1 = (Class)c1;
28 class2 = (Class)c2;
29
30 int result = class1.getName().compareTo(class2.getName());
31 if (result == 0) {
32 return result;
33 }
34 if (!_compareAscending) {
35 result = 0 - result;
36 }
37 return result > 0 ? 1 : -1;
38 }
39 }