/** * Determine whether or not any columns in the current index row are being changed by the update. * No need to update the index if no columns changed. * * @return Nothing. * @exception StandardException Thrown on error */ private boolean indexRowChanged() throws StandardException { int numColumns = ourIndexRow.nColumns(); for (int index = 1; index <= numColumns; index++) { DataValueDescriptor oldOrderable = ourIndexRow.getColumn(index); DataValueDescriptor newOrderable = ourUpdatedIndexRow.getColumn(index); if (!(oldOrderable.compare(DataValueDescriptor.ORDER_OP_EQUALS, newOrderable, true, true))) { return true; } } return false; }
@Override @SuppressFBWarnings(value = "RV_NEGATING_RESULT_OF_COMPARETO", justification = "Intentional") public int compare(ExecRow o1, ExecRow o2) { DataValueDescriptor[] a1 = o1.getRowArray(); DataValueDescriptor[] a2 = o2.getRowArray(); for (int i = 0; i < a1.length; ++i) { DataValueDescriptor c1 = a1[i]; DataValueDescriptor c2 = a2[i]; int result; try { result = c1.compare(c2, nullsOrderedLow == null ? true : nullsOrderedLow[i]); } catch (StandardException e) { throw new RuntimeException(e); } if (result != 0) { return descColumns == null || !descColumns[i] ? result : -result; } } return 0; }