diff --git a/src/main/java/org/springframework/hateoas/Links.java b/src/main/java/org/springframework/hateoas/Links.java index 83f2b59f..8930d617 100644 --- a/src/main/java/org/springframework/hateoas/Links.java +++ b/src/main/java/org/springframework/hateoas/Links.java @@ -142,7 +142,7 @@ public class Links implements Iterable { * links = links.and(…); * } * as - * links = link.and(a > 3, …); + * links = link.andIf(a > 3, …); * * * @param condition @@ -150,17 +150,13 @@ public class Links implements Iterable { * @return */ @SafeVarargs - public final Links and(boolean condition, Supplier... links) { + public final Links andIf(boolean condition, Supplier... links) { Assert.notNull(links, "Links must not be null!"); - if (!condition) { - return this; - } - - return and(Arrays.stream(links) // - .map(Supplier::get) // - .collect(Collectors.toList())); + return condition // + ? and(Arrays.stream(links).map(Supplier::get).collect(Collectors.toList())) // + : this; } /** diff --git a/src/test/java/org/springframework/hateoas/LinksUnitTest.java b/src/test/java/org/springframework/hateoas/LinksUnitTest.java index bdcc0885..313965e9 100755 --- a/src/test/java/org/springframework/hateoas/LinksUnitTest.java +++ b/src/test/java/org/springframework/hateoas/LinksUnitTest.java @@ -139,7 +139,7 @@ class LinksUnitTest { @Test // #1322 void conditionallyAddsLink() { - Links links = Links.NONE.and(true, () -> Link.of("/foo")); + Links links = Links.NONE.andIf(true, () -> Link.of("/foo")); assertThat(links.getRequiredLink(IanaLinkRelations.SELF).getHref()).isEqualTo("/foo"); } @@ -147,7 +147,7 @@ class LinksUnitTest { @Test // #1322 void doesNotEvaluateSupplierIfAddConditionIsFalse() { - assertThatCode(() -> Links.NONE.and(false, () -> { + assertThatCode(() -> Links.NONE.andIf(false, () -> { throw new IllegalStateException(); })).doesNotThrowAnyException(); }