KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gov > nasa > jpf > search > heuristic > HashcodeComparator


1 //
2
// Copyright (C) 2005 United States Government as represented by the
3
// Administrator of the National Aeronautics and Space Administration
4
// (NASA). All Rights Reserved.
5
//
6
// This software is distributed under the NASA Open Source Agreement
7
// (NOSA), version 1.3. The NOSA has been approved by the Open Source
8
// Initiative. See the file NOSA-1.3-JPF at the top of the distribution
9
// directory tree for the complete NOSA document.
10
//
11
// THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY OF ANY
12
// KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT
13
// LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO
14
// SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
15
// A PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT
16
// THE SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT
17
// DOCUMENTATION, IF PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE.
18
//
19
package gov.nasa.jpf.search.heuristic;
20
21 import java.util.Comparator JavaDoc;
22
23
24 /**
25  * hashcode comparator for heuristic state ordering
26  */

27 public class HashcodeComparator implements Comparator JavaDoc {
28
29   public int compare (Object JavaDoc o1, Object JavaDoc o2) {
30     HeuristicState hs1 = (HeuristicState) o1;
31     HeuristicState hs2 = (HeuristicState) o2;
32     
33     int p1 = hs1.getPriority();
34     int p2 = hs2.getPriority();
35
36     if (p1 == p2) {
37       int h1 = hs1.hashCode();
38       int h2 = hs2.hashCode();
39
40       if (h1 == h2) {
41         return 0;
42       } else if (h1 < h2) {
43         return -1;
44       } else {
45         return 1;
46       }
47     } else if (p1 < p2) {
48       return -1;
49     } else {
50       return 1;
51     }
52   }
53 }
Popular Tags