DATACMNS-908 - Introduced Order.withProperty(…).

The introduced method allows creating new Order instances for a different property ensuring all other aspects (ignore case, null handling) are retained.
This commit is contained in:
Oliver Gierke
2016-09-05 14:46:51 +02:00
parent acf12423e0
commit e294fb5ef4
2 changed files with 30 additions and 4 deletions

View File

@@ -393,13 +393,24 @@ public class Sort implements Iterable<org.springframework.data.domain.Sort.Order
} }
/** /**
* Returns a new {@link Order} with the given {@link Order}. * Returns a new {@link Order} with the given {@link Direction}.
* *
* @param order * @param direction
* @return * @return
*/ */
public Order with(Direction order) { public Order with(Direction direction) {
return new Order(order, this.property, nullHandling); return new Order(direction, this.property, this.ignoreCase, this.nullHandling);
}
/**
* Returns a new {@link Order}
*
* @param property must not be {@literal null} or empty.
* @return
* @since 1.13
*/
public Order withProperty(String property) {
return new Order(this.direction, property, this.ignoreCase, this.nullHandling);
} }
/** /**

View File

@@ -164,4 +164,19 @@ public class SortUnitTests {
public void orderWithDefaultNullHandlingHint() { public void orderWithDefaultNullHandlingHint() {
assertThat(new Order("foo").getNullHandling(), is(NATIVE)); assertThat(new Order("foo").getNullHandling(), is(NATIVE));
} }
/**
* @see DATACMNS-908
*/
@Test
public void createsNewOrderForDifferentProperty() {
Order source = new Order(Direction.DESC, "foo").nullsFirst().ignoreCase();
Order result = source.withProperty("bar");
assertThat(result.getProperty(), is("bar"));
assertThat(result.getDirection(), is(source.getDirection()));
assertThat(result.getNullHandling(), is(source.getNullHandling()));
assertThat(result.isIgnoreCase(), is(source.isIgnoreCase()));
}
} }