KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gcc > rmi > iiop > FieldComparator


1 /*
2  * Copyright 2004 The Apache Software Foundation or its licensors, as
3  * applicable.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
14  * implied.
15  *
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */

19 package gcc.rmi.iiop;
20
21 import java.lang.reflect.*;
22 import java.util.*;
23
24 /**
25  ** Sort fields in the order they must be marshalled for RMI-IIOP.
26  **/

27 public class FieldComparator implements Comparator
28 {
29     public static final FieldComparator SINGLETON = new FieldComparator();
30
31     public int compare(Object x, Object y)
32     {
33         Field a = (Field)x;
34         Field b = (Field)y;
35         if (a.getType().isPrimitive())
36         {
37             if (b.getType().isPrimitive())
38             {
39                 return a.getName().compareTo(b.getName());
40             }
41             else
42             {
43                 return -1;
44             }
45         }
46         else
47         {
48             if (b.getType().isPrimitive())
49             {
50                 return 1;
51             }
52             else
53             {
54                 return a.getName().compareTo(b.getName());
55             }
56         }
57     }
58
59     public boolean equals(Object x)
60     {
61         // shouldn't be used
62
return false;
63     }
64 }
65
66
Popular Tags