public int compare( RepositoryElementMetaInterface r1, RepositoryElementMetaInterface r2 ) { int result = 0; switch ( sortPosition ) { case 0: result = compareStrings( r1.getName(), r2.getName() ); break; case 1: result = compareStrings( r1.getObjectType().getTypeDescription(), r2.getObjectType().getTypeDescription() ); break; case 2: result = compareStrings( r1.getModifiedUser(), r2.getModifiedUser() ); break; case 3: result = compareDates( r1.getModifiedDate(), r2.getModifiedDate() ); break; case 4: result = compareStrings( r1.getDescription(), r2.getDescription() ); break; default: break; } if ( !ascending ) { result *= -1; } return result; } } );