@Nullable @Override public Object convertUnsortedEncodedKeyComponentToActualList(int[] key) { if (key == null || key.length == 0) { return null; } if (key.length == 1) { return getActualValue(key[0], false); } else { String[] rowArray = new String[key.length]; for (int i = 0; i < key.length; i++) { String val = getActualValue(key[i], false); rowArray[i] = NullHandling.nullToEmptyIfNeeded(val); } return Arrays.asList(rowArray); } }
@Override public int compareUnsortedEncodedKeyComponents(int[] lhs, int[] rhs) { int lhsLen = lhs.length; int rhsLen = rhs.length; int retVal = Ints.compare(lhsLen, rhsLen); int valsIndex = 0; while (retVal == 0 && valsIndex < lhsLen) { int lhsVal = lhs[valsIndex]; int rhsVal = rhs[valsIndex]; if (lhsVal != rhsVal) { final String lhsValActual = getActualValue(lhsVal, false); final String rhsValActual = getActualValue(rhsVal, false); if (lhsValActual != null && rhsValActual != null) { retVal = lhsValActual.compareTo(rhsValActual); } else if (lhsValActual == null ^ rhsValActual == null) { retVal = lhsValActual == null ? -1 : 1; } } ++valsIndex; } return retVal; }
@Nullable @Override public Object convertUnsortedEncodedKeyComponentToActualList(int[] key) { if (key == null || key.length == 0) { return null; } if (key.length == 1) { return getActualValue(key[0], false); } else { String[] rowArray = new String[key.length]; for (int i = 0; i < key.length; i++) { String val = getActualValue(key[i], false); rowArray[i] = NullHandling.nullToEmptyIfNeeded(val); } return Arrays.asList(rowArray); } }
@Override public int compareUnsortedEncodedKeyComponents(int[] lhs, int[] rhs) { int lhsLen = lhs.length; int rhsLen = rhs.length; int retVal = Ints.compare(lhsLen, rhsLen); int valsIndex = 0; while (retVal == 0 && valsIndex < lhsLen) { int lhsVal = lhs[valsIndex]; int rhsVal = rhs[valsIndex]; if (lhsVal != rhsVal) { final String lhsValActual = getActualValue(lhsVal, false); final String rhsValActual = getActualValue(rhsVal, false); if (lhsValActual != null && rhsValActual != null) { retVal = lhsValActual.compareTo(rhsValActual); } else if (lhsValActual == null ^ rhsValActual == null) { retVal = lhsValActual == null ? -1 : 1; } } ++valsIndex; } return retVal; }