KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > module > core > MMObjectCompare


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.module.core;
11
12 import org.mmbase.util.*;
13
14 /**
15  * MMObjectNodeCompare can me used as a compare function in Sortable
16  * objects from org.mmbase.util (hitlisted)
17
18  * @todo Should implement java.util.Comparator.
19  * @see org.mmbase.util.NodeComparator
20  *
21  */

22 public class MMObjectCompare implements CompareInterface {
23     String JavaDoc compareField;
24
25     public MMObjectCompare(String JavaDoc fieldName) {
26         compareField = fieldName;
27     }
28
29     public int compare(Object JavaDoc thisOne, Object JavaDoc other) {
30         Object JavaDoc object1;
31         Object JavaDoc object2;
32         int result = 0;
33
34         object1 = ((MMObjectNode)thisOne).getValue(compareField);
35         object2 = ((MMObjectNode)other).getValue(compareField);
36
37         if(object1 instanceof String JavaDoc)
38             result = internalStringCompare(object1, object2);
39         else if(object1 instanceof Integer JavaDoc)
40             result = internalIntCompare(object1, object2);
41
42         return (result);
43     }
44
45     int internalIntCompare(Object JavaDoc thisOne, Object JavaDoc other) {
46         return(((Integer JavaDoc)thisOne).intValue()-((Integer JavaDoc)other).intValue());
47     }
48
49     int internalStringCompare(Object JavaDoc thisOne, Object JavaDoc other) {
50         return(((String JavaDoc)thisOne).compareTo((String JavaDoc)other));
51     }
52 }
53
Popular Tags