List of usage examples for org.springframework.hateoas Link REL_NEXT
LinkRelation REL_NEXT
To view the source code for org.springframework.hateoas Link REL_NEXT.
Click Source Link
From source file:org.lareferencia.backend.rest.PageResource.java
public PageResource(Page<T> page, String pageParam, String sizeParam) { super();// ww w. ja va 2 s . co m this.page = page; if (page.hasPrevious()) { String path = createBuilder().queryParam(pageParam, page.getNumber() - 1) .queryParam(sizeParam, page.getSize()).build().toUriString(); Link link = new Link(path, Link.REL_PREVIOUS); add(link); } if (page.hasNext()) { String path = createBuilder().queryParam(pageParam, page.getNumber() + 1) .queryParam(sizeParam, page.getSize()).build().toUriString(); Link link = new Link(path, Link.REL_NEXT); add(link); } Link link = buildPageLink(pageParam, 0, sizeParam, page.getSize(), Link.REL_FIRST); add(link); int indexOfLastPage = page.getTotalPages() - 1; link = buildPageLink(pageParam, indexOfLastPage, sizeParam, page.getSize(), Link.REL_LAST); add(link); link = buildPageLink(pageParam, page.getNumber(), sizeParam, page.getSize(), Link.REL_SELF); add(link); }
From source file:com.github.hateoas.forms.spring.uber.AbstractUberNodeTest.java
@Test public void findsAddedLinks() throws Exception { dummyUberNode.addLinks(Arrays.asList(linkNext, linkPrevious)); assertEquals(URL_NEXT, dummyUberNode.getFirstByRel(Link.REL_NEXT).getUrl()); assertEquals(URL_PREVIOUS, dummyUberNode.getFirstByRel(Link.REL_PREVIOUS).getUrl()); assertNull(dummyUberNode.getFirstByRel("noSuchRel")); }
From source file:de.escalon.hypermedia.spring.hydra.PagedResourcesSerializer.java
@Override public void serialize(PagedResources pagedResources, JsonGenerator jgen, SerializerProvider serializerProvider) throws IOException { final SerializationConfig config = serializerProvider.getConfig(); JavaType javaType = config.constructType(pagedResources.getClass()); JsonSerializer<Object> serializer = BeanSerializerFactory.instance.createSerializer(serializerProvider, javaType);//from ww w. ja v a 2 s . c om // replicate pretty much everything from JacksonHydraSerializer // since we must reorganize the internals of pagedResources to get a hydra collection // with partial page view, we have to serialize pagedResources with an // unwrapping serializer Deque<LdContext> contextStack = (Deque<LdContext>) serializerProvider.getAttribute(KEY_LD_CONTEXT); if (contextStack == null) { contextStack = new ArrayDeque<LdContext>(); serializerProvider.setAttribute(KEY_LD_CONTEXT, contextStack); } // TODO: filter next/previous/first/last from link list - maybe create new PagedResources without them? List<Link> links = pagedResources.getLinks(); List<Link> filteredLinks = new ArrayList<Link>(); for (Link link : links) { String rel = link.getRel(); if (navigationRels.contains(rel)) { continue; } else { filteredLinks.add(link); } } PagedResources toRender = new PagedResources(pagedResources.getContent(), pagedResources.getMetadata(), filteredLinks); jgen.writeStartObject(); serializeContext(toRender, jgen, serializerProvider, contextStack); jgen.writeStringField(JsonLdKeywords.AT_TYPE, "hydra:Collection"); // serialize with PagedResourcesMixin serializer.unwrappingSerializer(NameTransformer.NOP).serialize(toRender, jgen, serializerProvider); PagedResources.PageMetadata metadata = pagedResources.getMetadata(); jgen.writeNumberField("hydra:totalItems", metadata.getTotalElements()); // begin hydra:view jgen.writeObjectFieldStart("hydra:view"); jgen.writeStringField(JsonLdKeywords.AT_TYPE, "hydra:PartialCollectionView"); writeRelLink(pagedResources, jgen, Link.REL_NEXT); writeRelLink(pagedResources, jgen, "previous"); // must also translate prev to its synonym previous writeRelLink(pagedResources, jgen, Link.REL_PREVIOUS, "previous"); writeRelLink(pagedResources, jgen, Link.REL_FIRST); writeRelLink(pagedResources, jgen, Link.REL_LAST); jgen.writeEndObject(); // end hydra:view jgen.writeEndObject(); contextStack = (Deque<LdContext>) serializerProvider.getAttribute(KEY_LD_CONTEXT); if (!contextStack.isEmpty()) { contextStack.pop(); } }
From source file:org.springframework.data.rest.webmvc.jpa.JpaWebTests.java
@Test public void accessPersons() throws Exception { MockHttpServletResponse response = client.request("/people?page=0&size=1"); Link nextLink = client.assertHasLinkWithRel(Link.REL_NEXT, response); assertDoesNotHaveLinkWithRel(Link.REL_PREVIOUS, response); response = client.request(nextLink); client.assertHasLinkWithRel(Link.REL_PREVIOUS, response); nextLink = client.assertHasLinkWithRel(Link.REL_NEXT, response); response = client.request(nextLink); client.assertHasLinkWithRel(Link.REL_PREVIOUS, response); assertDoesNotHaveLinkWithRel(Link.REL_NEXT, response); }
From source file:org.springframework.data.rest.webmvc.solr.SolrWebTests.java
/** * @see DATAREST-387//from ww w. j a v a2 s.c o m */ @Test public void allowsPaginationThroughData() throws Exception { MockHttpServletResponse response = client.request("/products?page=0&size=1"); Link nextLink = client.assertHasLinkWithRel(Link.REL_NEXT, response); assertDoesNotHaveLinkWithRel(Link.REL_PREVIOUS, response); response = client.request(nextLink); client.assertHasLinkWithRel(Link.REL_PREVIOUS, response); nextLink = client.assertHasLinkWithRel(Link.REL_NEXT, response); response = client.request(nextLink); client.assertHasLinkWithRel(Link.REL_PREVIOUS, response); assertDoesNotHaveLinkWithRel(Link.REL_NEXT, response); }
From source file:org.springframework.hateoas.LinkUnitTest.java
@Test public void differentRelMakesDifferentLink() { Link left = new Link("foo", Link.REL_PREVIOUS); Link right = new Link("foo", Link.REL_NEXT); TestUtils.assertNotEqualAndDifferentHashCode(left, right); }
From source file:org.springframework.hateoas.PagedResources.java
/** * Returns the Link pointing to the next page (if set). * * @see #addPaginationLinks(Link) * @return */ @JsonIgnore public Link getNextLink() { return getLink(Link.REL_NEXT); }