KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jofti > util > ReflectionComparator


1 package com.jofti.util;
2
3
4 import java.util.Comparator JavaDoc;
5 import java.util.Map JavaDoc;
6
7 import com.jofti.exception.JoftiException;
8 import com.jofti.introspect.ClassIntrospector;
9
10 public class ReflectionComparator implements Comparator JavaDoc {
11
12     private Object JavaDoc[] methods =null;
13     ClassIntrospector introspector =null;
14     
15     public ReflectionComparator(Object JavaDoc[] methods, ClassIntrospector introspector){
16         this.methods = methods;
17         this.introspector = introspector;
18     }
19     public int compare(Object JavaDoc o1, Object JavaDoc o2) {
20         int res =0;
21         try {
22             
23             
24             Object JavaDoc or1 = ((Map.Entry JavaDoc)o1).getValue();
25             Object JavaDoc or2 = ((Map.Entry JavaDoc)o2).getValue();
26             
27             Comparable JavaDoc comp1 = (Comparable JavaDoc)introspector.getResultFromMethods(or1, methods);
28             Object JavaDoc comp2 = introspector.getResultFromMethods(or2, methods);
29         
30             res = comp1.compareTo(comp2);
31             
32             if (res ==0){
33                 return ((Map.Entry JavaDoc)o1).getKey().toString().compareTo(((Map.Entry JavaDoc)o1).getKey().toString());
34             }
35         } catch (JoftiException e){
36             throw new RuntimeException JavaDoc(e);
37         }
38         return res;
39         
40     }
41
42 }
43
Popular Tags