diff --git a/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java b/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java index 146c22d37..39dfed867 100644 --- a/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java +++ b/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java @@ -26,8 +26,9 @@ import org.springframework.core.MethodParameter; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; -import org.springframework.hateoas.IanaLinkRelation; +import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; +import org.springframework.hateoas.LinkRelation; import org.springframework.hateoas.PagedResources; import org.springframework.hateoas.PagedResources.PageMetadata; import org.springframework.hateoas.Resource; @@ -221,27 +222,28 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa boolean isNavigable = page.hasPrevious() || page.hasNext(); if (isNavigable || forceFirstAndLastRels) { - resources.add(createLink(base, PageRequest.of(0, page.getSize(), page.getSort()), IanaLinkRelation.FIRST.value())); + resources.add(createLink(base, PageRequest.of(0, page.getSize(), page.getSort()), IanaLinkRelations.FIRST)); } if (page.hasPrevious()) { - resources.add(createLink(base, page.previousPageable(), IanaLinkRelation.PREV.value())); + resources.add(createLink(base, page.previousPageable(), IanaLinkRelations.PREV)); } Link selfLink = link.map(it -> it.withSelfRel())// - .orElseGet(() -> createLink(base, page.getPageable(), IanaLinkRelation.SELF.value())); + .orElseGet(() -> createLink(base, page.getPageable(), IanaLinkRelations.SELF)); resources.add(selfLink); if (page.hasNext()) { - resources.add(createLink(base, page.nextPageable(), IanaLinkRelation.NEXT.value())); + resources.add(createLink(base, page.nextPageable(), IanaLinkRelations.NEXT)); } if (isNavigable || forceFirstAndLastRels) { int lastIndex = page.getTotalPages() == 0 ? 0 : page.getTotalPages() - 1; - resources.add(createLink(base, PageRequest.of(lastIndex, page.getSize(), page.getSort()), IanaLinkRelation.LAST.value())); + resources + .add(createLink(base, PageRequest.of(lastIndex, page.getSize(), page.getSort()), IanaLinkRelations.LAST)); } return resources; @@ -258,20 +260,20 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa } /** - * Creates a {@link Link} with the given rel that will be based on the given {@link UriTemplate} but enriched with the - * values of the given {@link Pageable} (if not {@literal null}). + * Creates a {@link Link} with the given {@link LinkRelation} that will be based on the given {@link UriTemplate} but + * enriched with the values of the given {@link Pageable} (if not {@literal null}). * * @param base must not be {@literal null}. * @param pageable can be {@literal null} - * @param rel must not be {@literal null} or empty. + * @param relation must not be {@literal null}. * @return */ - private Link createLink(UriTemplate base, Pageable pageable, String rel) { + private Link createLink(UriTemplate base, Pageable pageable, LinkRelation relation) { UriComponentsBuilder builder = fromUri(base.expand()); pageableResolver.enhance(builder, getMethodParameter(), pageable); - return new Link(new UriTemplate(builder.build().toString()), rel); + return new Link(new UriTemplate(builder.build().toString()), relation); } /** diff --git a/src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java b/src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java index b7e46a7a4..0e49c8473 100755 --- a/src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java +++ b/src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java @@ -45,7 +45,7 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; -import org.springframework.hateoas.IanaLinkRelation; +import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; /** @@ -160,9 +160,8 @@ public class SpringDataJaxbUnitTests { @Override protected List getLinks(Page source) { - return Arrays.asList( - new Link(IanaLinkRelation.NEXT.value(), IanaLinkRelation.NEXT.value()), - new Link(IanaLinkRelation.PREV.value(), IanaLinkRelation.PREVIOUS.value())); + return Arrays.asList(new Link(IanaLinkRelations.NEXT.value(), IanaLinkRelations.NEXT), + new Link(IanaLinkRelations.PREV.value(), IanaLinkRelations.PREV)); } } } diff --git a/src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java b/src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java index 61f16bf43..1b1bc5a3d 100755 --- a/src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java +++ b/src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java @@ -30,7 +30,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; -import org.springframework.hateoas.IanaLinkRelation; +import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; import org.springframework.hateoas.PagedResources; import org.springframework.hateoas.PagedResources.PageMetadata; @@ -66,9 +66,9 @@ public class PagedResourcesAssemblerUnitTests { PagedResources> resources = assembler.toResource(createPage(0)); - assertThat(resources.getLink(IanaLinkRelation.PREV.value())).isEmpty(); - assertThat(resources.getLink(IanaLinkRelation.SELF.value())).isNotEmpty(); - assertThat(resources.getLink(IanaLinkRelation.NEXT.value())).isNotEmpty(); + assertThat(resources.getLink(IanaLinkRelations.PREV)).isEmpty(); + assertThat(resources.getLink(IanaLinkRelations.SELF)).isNotEmpty(); + assertThat(resources.getLink(IanaLinkRelations.NEXT)).isNotEmpty(); } @Test @@ -76,9 +76,9 @@ public class PagedResourcesAssemblerUnitTests { PagedResources> resources = assembler.toResource(createPage(1)); - assertThat(resources.getLink(IanaLinkRelation.PREV.value())).isNotEmpty(); - assertThat(resources.getLink(IanaLinkRelation.SELF.value())).isNotEmpty(); - assertThat(resources.getLink(IanaLinkRelation.NEXT.value())).isNotEmpty(); + assertThat(resources.getLink(IanaLinkRelations.PREV)).isNotEmpty(); + assertThat(resources.getLink(IanaLinkRelations.SELF)).isNotEmpty(); + assertThat(resources.getLink(IanaLinkRelations.NEXT)).isNotEmpty(); } @Test @@ -86,9 +86,9 @@ public class PagedResourcesAssemblerUnitTests { PagedResources> resources = assembler.toResource(createPage(2)); - assertThat(resources.getLink(IanaLinkRelation.PREV.value())).isNotEmpty(); - assertThat(resources.getLink(IanaLinkRelation.SELF.value())).isNotEmpty(); - assertThat(resources.getLink(IanaLinkRelation.NEXT.value())).isEmpty(); + assertThat(resources.getLink(IanaLinkRelations.PREV)).isNotEmpty(); + assertThat(resources.getLink(IanaLinkRelations.SELF)).isNotEmpty(); + assertThat(resources.getLink(IanaLinkRelations.NEXT)).isEmpty(); } @Test @@ -99,9 +99,9 @@ public class PagedResourcesAssemblerUnitTests { PagedResourcesAssembler assembler = new PagedResourcesAssembler<>(resolver, baseUri); PagedResources> resources = assembler.toResource(createPage(1)); - assertThat(resources.getRequiredLink(IanaLinkRelation.PREV.value()).getHref()).startsWith(baseUri.toUriString()); - assertThat(resources.getRequiredLink(IanaLinkRelation.SELF.value())).isNotNull(); - assertThat(resources.getRequiredLink(IanaLinkRelation.NEXT.value()).getHref()).startsWith(baseUri.toUriString()); + assertThat(resources.getRequiredLink(IanaLinkRelations.PREV).getHref()).startsWith(baseUri.toUriString()); + assertThat(resources.getRequiredLink(IanaLinkRelations.SELF)).isNotNull(); + assertThat(resources.getRequiredLink(IanaLinkRelations.NEXT).getHref()).startsWith(baseUri.toUriString()); } @Test @@ -111,9 +111,9 @@ public class PagedResourcesAssemblerUnitTests { PagedResources> resources = assembler.toResource(createPage(1), link); - assertThat(resources.getRequiredLink(IanaLinkRelation.PREV.value()).getHref()).startsWith(link.getHref()); - assertThat(resources.getRequiredLink(IanaLinkRelation.SELF.value())).isEqualTo(link.withSelfRel()); - assertThat(resources.getRequiredLink(IanaLinkRelation.NEXT.value()).getHref()).startsWith(link.getHref()); + assertThat(resources.getRequiredLink(IanaLinkRelations.PREV).getHref()).startsWith(link.getHref()); + assertThat(resources.getRequiredLink(IanaLinkRelations.SELF)).isEqualTo(link.withSelfRel()); + assertThat(resources.getRequiredLink(IanaLinkRelations.NEXT).getHref()).startsWith(link.getHref()); } @Test // DATACMNS-358 @@ -132,7 +132,7 @@ public class PagedResourcesAssemblerUnitTests { PagedResources> resources = assembler.toResource(createPage(1)); - assertThat(resources.getRequiredLink(IanaLinkRelation.SELF.value()).getHref()).doesNotContain("{").doesNotContain("}"); + assertThat(resources.getRequiredLink(IanaLinkRelations.SELF).getHref()).doesNotContain("{").doesNotContain("}"); } @Test // DATACMNS-418 @@ -142,8 +142,8 @@ public class PagedResourcesAssemblerUnitTests { PagedResources resources = assembler.toResource(createPage(0), personAssembler); - assertThat(resources.hasLink(IanaLinkRelation.SELF.value())).isTrue(); - assertThat(resources.hasLink(IanaLinkRelation.NEXT.value())).isTrue(); + assertThat(resources.hasLink(IanaLinkRelations.SELF)).isTrue(); + assertThat(resources.hasLink(IanaLinkRelations.NEXT)).isTrue(); Collection content = resources.getContent(); assertThat(content).hasSize(1); assertThat(content.iterator().next().name).isEqualTo("Dave"); @@ -173,9 +173,9 @@ public class PagedResourcesAssemblerUnitTests { PagedResources> resources = assembler.toResource(createPage(1)); - assertThat(resources.getRequiredLink(IanaLinkRelation.SELF.value()).getHref()).doesNotContain("{").doesNotContain("}"); - assertThat(resources.getRequiredLink(IanaLinkRelation.NEXT.value()).getHref()).endsWith("?page=2&size=1"); - assertThat(resources.getRequiredLink(IanaLinkRelation.PREV.value()).getHref()).endsWith("?page=0&size=1"); + assertThat(resources.getRequiredLink(IanaLinkRelations.SELF).getHref()).doesNotContain("{").doesNotContain("}"); + assertThat(resources.getRequiredLink(IanaLinkRelations.NEXT).getHref()).endsWith("?page=2&size=1"); + assertThat(resources.getRequiredLink(IanaLinkRelations.PREV).getHref()).endsWith("?page=0&size=1"); } @Test // DATACMNS-699 @@ -206,8 +206,8 @@ public class PagedResourcesAssemblerUnitTests { PagedResources> resources = assembler.toResource(createPage(1)); - assertThat(resources.getRequiredLink(IanaLinkRelation.FIRST.value()).getHref()).endsWith("?page=0&size=1"); - assertThat(resources.getRequiredLink(IanaLinkRelation.LAST.value()).getHref()).endsWith("?page=2&size=1"); + assertThat(resources.getRequiredLink(IanaLinkRelations.FIRST).getHref()).endsWith("?page=0&size=1"); + assertThat(resources.getRequiredLink(IanaLinkRelations.LAST).getHref()).endsWith("?page=2&size=1"); } @Test // DATACMNS-701 @@ -215,8 +215,8 @@ public class PagedResourcesAssemblerUnitTests { PagedResources> resources = assembler.toResource(createPage(0)); - assertThat(resources.getRequiredLink(IanaLinkRelation.FIRST.value()).getHref()).endsWith("?page=0&size=1"); - assertThat(resources.getRequiredLink(IanaLinkRelation.LAST.value()).getHref()).endsWith("?page=2&size=1"); + assertThat(resources.getRequiredLink(IanaLinkRelations.FIRST).getHref()).endsWith("?page=0&size=1"); + assertThat(resources.getRequiredLink(IanaLinkRelations.LAST).getHref()).endsWith("?page=2&size=1"); } @Test // DATACMNS-701 @@ -224,8 +224,8 @@ public class PagedResourcesAssemblerUnitTests { PagedResources> resources = assembler.toResource(createPage(2)); - assertThat(resources.getRequiredLink(IanaLinkRelation.FIRST.value()).getHref()).endsWith("?page=0&size=1"); - assertThat(resources.getRequiredLink(IanaLinkRelation.LAST.value()).getHref()).endsWith("?page=2&size=1"); + assertThat(resources.getRequiredLink(IanaLinkRelations.FIRST).getHref()).endsWith("?page=0&size=1"); + assertThat(resources.getRequiredLink(IanaLinkRelations.LAST).getHref()).endsWith("?page=2&size=1"); } @Test // DATACMNS-701 @@ -236,8 +236,8 @@ public class PagedResourcesAssemblerUnitTests { PagedResources> resources = assembler.toResource(EMPTY_PAGE); - assertThat(resources.getRequiredLink(IanaLinkRelation.FIRST.value()).getHref()).endsWith("?page=0&size=20"); - assertThat(resources.getRequiredLink(IanaLinkRelation.LAST.value()).getHref()).endsWith("?page=0&size=20"); + assertThat(resources.getRequiredLink(IanaLinkRelations.FIRST).getHref()).endsWith("?page=0&size=20"); + assertThat(resources.getRequiredLink(IanaLinkRelations.LAST).getHref()).endsWith("?page=0&size=20"); } @Test // DATACMNS-802 @@ -254,7 +254,7 @@ public class PagedResourcesAssemblerUnitTests { PagedResources> resource = assembler.toResource(createPage(0)); - assertThat(resource.getRequiredLink(IanaLinkRelation.SELF.value()).getHref()).endsWith("?page=0&size=1"); + assertThat(resource.getRequiredLink(IanaLinkRelations.SELF).getHref()).endsWith("?page=0&size=1"); } private static Page createPage(int index) { diff --git a/src/test/java/org/springframework/data/web/config/PageableResourcesAssemblerIntegrationTests.java b/src/test/java/org/springframework/data/web/config/PageableResourcesAssemblerIntegrationTests.java index afba4bb9e..0bd713dae 100755 --- a/src/test/java/org/springframework/data/web/config/PageableResourcesAssemblerIntegrationTests.java +++ b/src/test/java/org/springframework/data/web/config/PageableResourcesAssemblerIntegrationTests.java @@ -31,7 +31,7 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.web.PagedResourcesAssembler; import org.springframework.data.web.WebTestUtils; -import org.springframework.hateoas.IanaLinkRelation; +import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.PagedResources; import org.springframework.hateoas.Resource; import org.springframework.stereotype.Controller; @@ -70,9 +70,9 @@ public class PageableResourcesAssemblerIntegrationTests { PagedResources> resources = controller.sample(PageRequest.of(1, 1)); - assertThat(resources.getLink(IanaLinkRelation.PREV.value())).isNotNull(); - assertThat(resources.getLink(IanaLinkRelation.NEXT.value())).isNotNull(); - assertThat(resources.getLink(IanaLinkRelation.SELF.value())).isNotNull(); + assertThat(resources.getLink(IanaLinkRelations.PREV)).isNotNull(); + assertThat(resources.getLink(IanaLinkRelations.NEXT)).isNotNull(); + assertThat(resources.getLink(IanaLinkRelations.SELF)).isNotNull(); } @Test // DATACMNS-471