KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jodd > util > MultiComparator


1 // Copyright (c) 2003-2007, Jodd Team (jodd.sf.net). All Rights Reserved.
2

3 package jodd.util;
4
5 import java.util.ArrayList JavaDoc;
6 import java.util.Comparator JavaDoc;
7 import java.io.Serializable JavaDoc;
8
9 public class MultiComparator implements Comparator JavaDoc, Serializable JavaDoc {
10
11     private ArrayList JavaDoc comparators = new ArrayList JavaDoc();
12     private Comparator JavaDoc[] comparatorsArray;
13     
14     public MultiComparator(Comparator JavaDoc c) {
15         add(c);
16     }
17     
18     public void add(Comparator JavaDoc c) {
19         comparators.add(c);
20         makeArray();
21     }
22     
23     private void makeArray() {
24         comparatorsArray = new Comparator JavaDoc[comparators.size()];
25         for (int i = 0; i < comparators.size(); i++) {
26             comparatorsArray[i] = (Comparator JavaDoc) comparators.get(i);
27         }
28     }
29
30     public int compare(Object JavaDoc arg0, Object JavaDoc arg1) {
31         for (int i = 0; i < comparatorsArray.length; i++) {
32             Comparator JavaDoc c = comparatorsArray[i];
33             int result = c.compare(arg0, arg1);
34             if (result != 0) {
35                 return result;
36             }
37         }
38         return 0;
39     }
40 }
41
Popular Tags