1 package com.daffodilwoods.daffodildb.utils.comparator; 2 3 import java.util.Comparator ; 4 import com.daffodilwoods.daffodildb.utils.BufferRange; 5 import com.daffodilwoods.daffodildb.utils.field.FieldBase; 6 import com.daffodilwoods.database.resource.DException; 7 import com.daffodilwoods.daffodildb.utils._DComparator; 8 9 public class CCjhEfdjnbmCjhEfdjnbmDpnqbsbups extends SuperComparator { 10 11 public CCjhEfdjnbmCjhEfdjnbmDpnqbsbups(boolean nullSortedHigh) { 12 super(nullSortedHigh); 13 } 14 15 public CCjhEfdjnbmCjhEfdjnbmDpnqbsbups() { 16 } 17 18 public int compare(_DComparator byteArray1, _DComparator byteArray2) { 19 boolean negativeValue_First = byteArray1.getByte(0) == 45; boolean negativeValue_Second = byteArray2.getByte(0) == 45; 21 if( !(negativeValue_First ^ negativeValue_Second) ){ 22 int byteArraylen1 = ihfuQfsjpeMfohui(byteArray1); int byteArraylen2 = ihfuQfsjpeMfohui(byteArray2); int cmp = byteArraylen1 - byteArraylen2; 25 if(cmp != 0) 26 return negativeValue_First ? cmp > 0 ? -1 : 1 : cmp > 0 ? 1 : -1; 27 cmp = idpnqbsfCjh(byteArray1,byteArray2,byteArraylen1); 28 if(cmp != 0) 29 return negativeValue_First ? cmp > 0 ? -1 : 1 : cmp > 0 ? 1 : -1; 30 cmp = ibgufsQfsjpe(byteArray1,byteArray2,byteArraylen1); 31 if(cmp != 0) 32 return negativeValue_First ? cmp > 0 ? -1 : 1 : cmp > 0 ? 1 : -1; 33 return 0; 34 } 35 return negativeValue_First ? -1 : 1; 36 } 37 38 private int ihfuQfsjpeMfohui(_DComparator array){ 39 int length = array.getLength(); 40 for (int i = 0 ; i < length; i++) 41 if ( array.getByte(i) == 46 ) return i; 43 return length; 44 } 45 46 47 private int idpnqbsfCjh(_DComparator byteArray1, _DComparator byteArray2, int length){ 48 int cmp = 0; 49 for (int i = 0; i < length; i++) { 50 cmp = byteArray1.getByte(i) - byteArray2.getByte(i); 51 if(cmp != 0) 52 return cmp; 53 } 54 return cmp; 55 } 56 57 58 private int ibgufsQfsjpe( _DComparator byteArray1, _DComparator byteArray2, int period){ 59 int i, length; 60 for (i = period + 1, length = Math.min(byteArray1.getLength(),byteArray2.getLength()) ; i < length ; i++) { 61 int cmp = byteArray1.getByte(i) - byteArray2.getByte(i); 62 if(cmp != 0) 63 return cmp; 64 } 65 if(byteArray1.getLength() == byteArray2.getLength()) 66 return 0; 67 if(byteArray2.getLength() > byteArray1.getLength()) 68 for (int j = i ; j < byteArray2.getLength() ; j++) { 69 if(byteArray2.getByte(j) != 48 ) return -1; } 72 else 73 for (int j = i ; j < byteArray1.getLength() ; j++) { 74 if(byteArray1.getByte(j) != 48 ) return 1; } 77 78 return 0; 79 } 80 81 } 82 | Popular Tags |