Package org.springframework.data.web
Class SlicedResourcesAssembler<T>
java.lang.Object
org.springframework.data.web.SlicedResourcesAssembler<T>
- All Implemented Interfaces:
org.springframework.hateoas.server.RepresentationModelAssembler<Slice<T>,
org.springframework.hateoas.SlicedModel<org.springframework.hateoas.EntityModel<T>>>
public class SlicedResourcesAssembler<T>
extends Object
implements org.springframework.hateoas.server.RepresentationModelAssembler<Slice<T>,org.springframework.hateoas.SlicedModel<org.springframework.hateoas.EntityModel<T>>>
- Since:
- 3.1
- Author:
- Michael Schout, Oliver Drotbohm
-
Constructor Summary
ConstructorDescriptionSlicedResourcesAssembler
(HateoasPageableHandlerMethodArgumentResolver resolver, UriComponents baseUri) Creates a newSlicedResourcesAssembler
using the givenPageableHandlerMethodArgumentResolver
and base URI. -
Method Summary
Modifier and TypeMethodDescriptionprotected <R extends org.springframework.hateoas.RepresentationModel<?>,
S>
org.springframework.hateoas.SlicedModel<R>createSlicedModel
(List<R> resources, org.springframework.hateoas.SlicedModel.SliceMetadata metadata, Slice<S> slice) Creates theSlicedModel
to be equipped with pagination links downstream.void
setForceFirstRel
(boolean forceFirstRel) Configures whether to always addfirst
links to theSlicedModel
* created.org.springframework.hateoas.SlicedModel<?>
toEmptyModel
(Slice<?> slice, Class<?> type) Creates aSlicedModel
with an empty collectionEmbeddedWrapper
for the given domain type.org.springframework.hateoas.SlicedModel<?>
toEmptyModel
(Slice<?> slice, Class<?> type, Optional<org.springframework.hateoas.Link> link) org.springframework.hateoas.SlicedModel<?>
toEmptyModel
(Slice<?> slice, Class<?> type, org.springframework.hateoas.Link link) Creates aSlicedModel
with an empty collectionEmbeddedWrapper
for the given domain type.org.springframework.hateoas.SlicedModel<org.springframework.hateoas.EntityModel<T>>
org.springframework.hateoas.SlicedModel<org.springframework.hateoas.EntityModel<T>>
Creates a newSlicedModel
by converting the givenSlice
into aSlicedModel.SliceMetadata
instance and wrapping the contained elements into *SlicedModel
instances.<R extends org.springframework.hateoas.RepresentationModel<?>>
org.springframework.hateoas.SlicedModel<R>toModel
(Slice<T> slice, org.springframework.hateoas.server.RepresentationModelAssembler<T, R> assembler) <R extends org.springframework.hateoas.RepresentationModel<?>>
org.springframework.hateoas.SlicedModel<R>toModel
(Slice<T> slice, org.springframework.hateoas.server.RepresentationModelAssembler<T, R> assembler, org.springframework.hateoas.Link link) withParameter
(MethodParameter parameter) Creates a newSlicedResourcesAssembler
with the given referenceMethodParameter
.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.hateoas.server.RepresentationModelAssembler
toCollectionModel
-
Constructor Details
-
SlicedResourcesAssembler
public SlicedResourcesAssembler(@Nullable HateoasPageableHandlerMethodArgumentResolver resolver, @Nullable UriComponents baseUri) Creates a newSlicedResourcesAssembler
using the givenPageableHandlerMethodArgumentResolver
and base URI. If the former is null, a default one will be created. If the latter is null, calls totoModel(Slice)
will use the current request's URI to build the relevant previous and next links.- Parameters:
resolver
- can be null.baseUri
- can be null.
-
-
Method Details
-
setForceFirstRel
public void setForceFirstRel(boolean forceFirstRel) Configures whether to always addfirst
links to theSlicedModel
* created. Defaults to false which means thatfirst
links onlys appear in conjunction withprev
andnext
links.- Parameters:
forceFirstRel
- whether to always addfirst
links to theSlicedModel
created.
-
withParameter
Creates a newSlicedResourcesAssembler
with the given referenceMethodParameter
.- Parameters:
parameter
- can be null.- Returns:
- will never be null.
- Since:
- 3.1
-
toModel
-
toModel
public org.springframework.hateoas.SlicedModel<org.springframework.hateoas.EntityModel<T>> toModel(Slice<T> slice, org.springframework.hateoas.Link selfLink) Creates a newSlicedModel
by converting the givenSlice
into aSlicedModel.SliceMetadata
instance and wrapping the contained elements into *SlicedModel
instances. Will add pagination links based on the given self link.- Parameters:
slice
- must not be null.selfLink
- must not be null.- Returns:
-
toModel
public <R extends org.springframework.hateoas.RepresentationModel<?>> org.springframework.hateoas.SlicedModel<R> toModel(Slice<T> slice, org.springframework.hateoas.server.RepresentationModelAssembler<T, R> assembler) Creates a newSlicedModel
by converting the givenSlice
into aSlicedModel.SliceMetadata
instance and using the givenSlicedModel
to turn elements of theSlice
into resources.- Parameters:
slice
- must not be null.assembler
- must not be null.- Returns:
-
toModel
public <R extends org.springframework.hateoas.RepresentationModel<?>> org.springframework.hateoas.SlicedModel<R> toModel(Slice<T> slice, org.springframework.hateoas.server.RepresentationModelAssembler<T, R> assembler, org.springframework.hateoas.Link link) Creates a newSlicedModel
by converting the givenSlice
into aSlicedModel.SliceMetadata
instance and using the givenSlicedModel
to turn elements of theSlice
into resources. Will add pagination links based on the given the self link.- Parameters:
slice
- must not be null.assembler
- must not be null.link
- must not be null.- Returns:
-
toEmptyModel
Creates aSlicedModel
with an empty collectionEmbeddedWrapper
for the given domain type.- Parameters:
slice
- must not be null, content must be empty.type
- must not be null.- Returns:
-
toEmptyModel
public org.springframework.hateoas.SlicedModel<?> toEmptyModel(Slice<?> slice, Class<?> type, org.springframework.hateoas.Link link) Creates aSlicedModel
with an empty collectionEmbeddedWrapper
for the given domain type.- Parameters:
slice
- must not be null, content must be empty.type
- must not be null.link
- must not be null.- Returns:
-
toEmptyModel
-
createSlicedModel
protected <R extends org.springframework.hateoas.RepresentationModel<?>,S> org.springframework.hateoas.SlicedModel<R> createSlicedModel(List<R> resources, org.springframework.hateoas.SlicedModel.SliceMetadata metadata, Slice<S> slice) Creates theSlicedModel
to be equipped with pagination links downstream.- Parameters:
resources
- the original slices's elements mapped intoRepresentationModel
instances.metadata
- the calculatedSlicedModel.SliceMetadata
, must not be null.slice
- the original page handed to the assembler, must not be null.- Returns:
- must not be null.
-