@Override public int compare(Object o1, Object o2) { Class<?> clazz = o1.getClass(); if (clazz == String.class) { CharSequence s1 = (CharSequence)o1; CharSequence s2 = (CharSequence)o2; return comparePadded(s1, s2); } else if (clazz == ClobType.class) { CharSequence s1 = ((ClobType)o1).getCharSequence(); CharSequence s2 = ((ClobType)o2).getCharSequence(); return comparePadded(s1, s2); } return ((Comparable<Object>)o1).compareTo(o2); } };
@Override public int compare(Object o1, Object o2) { Class<?> clazz = o1.getClass(); if (clazz == String.class) { CharSequence s1 = (CharSequence)o1; CharSequence s2 = (CharSequence)o2; return comparePadded(s1, s2); } else if (clazz == ClobType.class) { CharSequence s1 = ((ClobType)o1).getCharSequence(); CharSequence s2 = ((ClobType)o2).getCharSequence(); return comparePadded(s1, s2); } return ((Comparable<Object>)o1).compareTo(o2); } };
@Override public int compare(Object o1, Object o2) { Class<?> clazz = o1.getClass(); if (clazz == String.class) { CharSequence s1 = (CharSequence)o1; CharSequence s2 = (CharSequence)o2; return comparePadded(s1, s2); } else if (clazz == ClobType.class) { CharSequence s1 = ((ClobType)o1).getCharSequence(); CharSequence s2 = ((ClobType)o2).getCharSequence(); return comparePadded(s1, s2); } return ((Comparable<Object>)o1).compareTo(o2); } };
@Test public void testPaddedStringComparison(){ assertEquals(1, Constant.comparePadded("a", "")); assertEquals(0, Constant.comparePadded("a", "a ")); assertEquals(-24, Constant.comparePadded("ab ", "az ")); assertEquals(66, Constant.comparePadded("ab ", "a ")); assertEquals(0, Constant.comparePadded("a1 ", "a1")); }