public static int compare ( String left , String right ) { if ( Decision . isNumber ( left ) ) { if ( Decision . isNumber ( right ) ) { // long numbers if ( left . length ( ) > 9 || right . length ( ) > 9 ) { try { return new BigDecimal ( left ) . compareTo ( new BigDecimal ( right ) ) ; } catch ( Throwable t ) { ExceptionUtil . rethrowIfNecessary ( t ) ; } } return compare ( Caster . toDoubleValue ( left , Double . NaN ) , Caster . toDoubleValue ( right , Double . NaN ) ) ; } return compare ( Caster . toDoubleValue ( left , Double . NaN ) , right ) ; } if ( Decision . isBoolean ( left ) ) return compare ( Caster . toBooleanValue ( left , false ) ? 1D : 0D , right ) ; // NICE Date compare, perhaps datetime to double return left . compareToIgnoreCase ( right ) ; }
compares a String with a String