KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > expression > booleanvalueexpression > predicates > ByteInComparator


1 package com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.predicates;
2
3 import java.util.*;
4
5 import com.daffodilwoods.daffodildb.utils.*;
6 import com.daffodilwoods.daffodildb.utils.comparator.*;
7 import com.daffodilwoods.database.resource.*;
8
9 /**
10  * <p>Title: </p>
11  * <p>Description: </p>
12  * <p>Copyright: Copyright (c) 2003</p>
13  * <p>Company: </p>
14  * @author unascribed
15  * @version 1.0
16  */

17
18 public class ByteInComparator extends SuperComparator {
19
20    private SuperComparator superComparator;
21    private Object JavaDoc localCacheSingle;
22    private SuperComparator[] comparators;
23    private Object JavaDoc[] localCache;
24
25    public ByteInComparator(SuperComparator[] superComparator0, Object JavaDoc localCache0) throws DException {
26       comparators = superComparator0;
27       localCache = (Object JavaDoc[]) localCache0;
28       Arrays.sort(localCache, new Comparator(GetByteComparator.objectComparator));
29    }
30
31    public int compare(Object JavaDoc leftFieldBases, Object JavaDoc o2) throws DException {
32       return binarySearch(leftFieldBases, localCache);
33    }
34
35    private int binarySearch(Object JavaDoc left, Object JavaDoc[] rightArray) throws DException {
36       int low = 0, high = rightArray.length - 1;
37       while (low <= high) {
38          int mid = (low + high) / 2;
39          SuperComparator comparator = comparators[mid];
40          int returnValue = comparator.compare(left, rightArray[mid]);
41          if (returnValue < 0) {
42             high = mid - 1;
43          } else if (returnValue > 0) {
44             low = mid + 1;
45          } else {
46             return 0;
47          }
48       }
49       return -1;
50    }
51
52    public String JavaDoc toString() {
53       return "ByteInComparator[" + superComparator + "]";
54    }
55
56 }
57
58 class Comparator implements java.util.Comparator JavaDoc {
59    private SuperComparator comparator;
60
61    Comparator(SuperComparator comparator0) {
62       comparator = comparator0;
63    }
64
65    public int compare(Object JavaDoc leftFieldBases, Object JavaDoc o2) {
66       try {
67          return comparator.compare(leftFieldBases, o2);
68       } catch (DException ex) {
69       }
70       return -1;
71    }
72
73 }
74
Popular Tags