merging in revision 5523, changing object property sort method to account for nulls

This commit is contained in:
sjm222 2010-07-27 22:18:36 +00:00
parent b9ac586c20
commit dcd7f10b58

View file

@ -498,9 +498,20 @@ public class ObjectProperty extends Property implements Comparable<ObjectPropert
int rv = 0; int rv = 0;
try { try {
if( val1 instanceof String ) { if( val1 instanceof String ) {
if (val1 == null && val2 == null) {
rv = 0;
} else if (val1 == null) {
rv = 1;
} else if (val2 == null) {
rv = -1;
} else {
Collator collator = Collator.getInstance(); Collator collator = Collator.getInstance();
rv = collator.compare( ((String)val1) , ((String)val2) ); rv = collator.compare( ((String)val1) , ((String)val2) );
//rv = ((String)val1).compareTo((String)val2); //rv = ((String)val1).compareTo((String)val2);
}
} else if( val1 instanceof Date ) { } else if( val1 instanceof Date ) {
DateTime dt1 = new DateTime((Date)val1); DateTime dt1 = new DateTime((Date)val1);
DateTime dt2 = new DateTime((Date)val2); DateTime dt2 = new DateTime((Date)val2);
@ -581,12 +592,13 @@ public class ObjectProperty extends Property implements Comparable<ObjectPropert
} }
int rv = 0; int rv = 0;
try { try {
if (val1==null) { if (val1 == null && val2 == null) {
rv = 0;
} else if (val1==null) {
rv = 1; rv = 1;
} } else if (val2==null) {
if (val2==null) {
rv = -1; rv = -1;
} } else {
if( val1 instanceof String ) { if( val1 instanceof String ) {
Collator collator = Collator.getInstance(); Collator collator = Collator.getInstance();
rv = collator.compare( ((String)val1) , ((String)val2) ); //was rv = ((String)val1).compareTo((String)val2); rv = collator.compare( ((String)val1) , ((String)val2) ); //was rv = ((String)val1).compareTo((String)val2);
@ -596,17 +608,14 @@ public class ObjectProperty extends Property implements Comparable<ObjectPropert
rv = dt1.compareTo(dt2); rv = dt1.compareTo(dt2);
} else if( val1 instanceof Integer) { } else if( val1 instanceof Integer) {
rv = ((Integer) val1) - ((Integer) val2); rv = ((Integer) val1) - ((Integer) val2);
} } else{
else
rv = 0; rv = 0;
}
}
} catch (NullPointerException e) { } catch (NullPointerException e) {
e.printStackTrace(); e.printStackTrace();
} }
//if( cAscending )
// return rv;
//else
// return rv * -1;
if ( !cAscending ) { if ( !cAscending ) {
rv = rv * -1; rv = rv * -1;