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 17 18 public class ByteInComparator extends SuperComparator { 19 20 private SuperComparator superComparator; 21 private Object localCacheSingle; 22 private SuperComparator[] comparators; 23 private Object [] localCache; 24 25 public ByteInComparator(SuperComparator[] superComparator0, Object localCache0) throws DException { 26 comparators = superComparator0; 27 localCache = (Object []) localCache0; 28 Arrays.sort(localCache, new Comparator(GetByteComparator.objectComparator)); 29 } 30 31 public int compare(Object leftFieldBases, Object o2) throws DException { 32 return binarySearch(leftFieldBases, localCache); 33 } 34 35 private int binarySearch(Object left, Object [] 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 toString() { 53 return "ByteInComparator[" + superComparator + "]"; 54 } 55 56 } 57 58 class Comparator implements java.util.Comparator { 59 private SuperComparator comparator; 60 61 Comparator(SuperComparator comparator0) { 62 comparator = comparator0; 63 } 64 65 public int compare(Object leftFieldBases, Object o2) { 66 try { 67 return comparator.compare(leftFieldBases, o2); 68 } catch (DException ex) { 69 } 70 return -1; 71 } 72 73 } 74 | Popular Tags |