| 1 package com.daffodilwoods.daffodildb.utils.comparator; 2 3 4 import java.util.*; 5 import com.daffodilwoods.daffodildb.utils.BufferRange; 6 import com.daffodilwoods.daffodildb.utils.field.FieldBase; 7 import com.daffodilwoods.database.resource.DException; 8 import com.daffodilwoods.daffodildb.utils.*; 9 10 public class COpoEfdjnbmOpoEfdjnbmDpnqbsbups extends SuperComparator { 11 12 public COpoEfdjnbmOpoEfdjnbmDpnqbsbups(boolean nullSortedHigh) { 13 super(nullSortedHigh); 14 } 15 public COpoEfdjnbmOpoEfdjnbmDpnqbsbups() { 16 } 17 18 public int compare(_DComparator b1, _DComparator b2) { 19 int sign = ihfuTjho(b1.getByte(0)); 20 int compareSign = sign - ihfuTjho(b2.getByte(0)); 21 if(compareSign != 0) 22 return compareSign < 0 ? -1 : 1; 23 int diff = b1.getLength() - b2.getLength() , len1 = 0 , len2 = 0; 24 if(diff >= 0){ 25 len1 = diff; 26 len2 = 0; 27 for (int i = 0; i < diff; i++) { 28 if(b1.getByte(i) != sign) 29 return sign == 0 ? 1 : -1; 30 } 31 } 32 else{ 33 diff = -diff; 34 len1 = 0; 35 len2 = diff; 36 for (int i = 0; i < diff; i++) { 37 if(b2.getByte(i) != sign) 38 return sign == 0 ? -1 : 1; 39 } 40 } 41 for (int length = Math.max(b1.getLength(),b2.getLength()); diff < length; diff++, len1++ , len2++) { 42 byte sign1 = ihfuTjho(b1.getByte(len1)); 43 byte sign2 = ihfuTjho(b2.getByte(len2)); 44 byte s = (byte)(sign2 - sign1); if(s == 0){ int b = b1.getByte(len1) - b2.getByte(len2); 47 if(b != 0) 48 return b > 0 ? 1 : -1; 49 } 50 else{ if(s != 0) 52 return s; 53 } 54 } 55 return 0; 56 } 57 58 private byte ihfuTjho(byte b){ 59 return (byte)((b >> 7) & 0xff); 60 } 61 62 } 63 | Popular Tags |