Class EmbedRelsProjection

  • All Implemented Interfaces:
    Projection

    public class EmbedRelsProjection
    extends AbstractProjection
    Projection that allows a given set of rels to be embedded. A Rel refers to a Link Relation, this is an Embedded Object of the HalResource and the HalResource contains a link to this
    • Constructor Detail

      • EmbedRelsProjection

        public EmbedRelsProjection​(Set<String> embedRels,
                                   Set<String> embedSizes)
        The EmbedRelsProjection will take a set of embed relations and embed sizes as a parameter that will be added to the projection. The set of embedRels contains strings representing the embedded relation. The set of embedSizes contains a string containing the embedded relation followed by a "=" and the size of the embedded relation. Example: embed=collections&embed.size=collections=5 - These parameters will ensure that the embedded collections size will be limited to 5
        Parameters:
        embedRels - The embedded relations
        embedSizes - The sizes of the embedded relations defined as {relation}={size}
    • Method Detail

      • getName

        public String getName()
        Description copied from interface: Projection
        Gets the projection name.
        Returns:
        the name, which is a unique alphanumeric string.
      • allowEmbedding

        public boolean allowEmbedding​(HALResource<? extends RestAddressableModel> halResource,
                                      LinkRest linkRest,
                                      org.springframework.hateoas.Link... oldLinks)
        Description copied from interface: Projection
        Tells whether this projection permits the embedding of a particular embeddable subresource. This gives the projection an opportunity to opt in to to certain embeds, by returning true. Note: If this method returns true for a given subresource, it will be automatically linked regardless of what Projection.allowLinking(HALResource, LinkRest) returns.
        Specified by:
        allowEmbedding in interface Projection
        Overrides:
        allowEmbedding in class AbstractProjection
        Parameters:
        halResource - the resource from which the embed may or may not be made.
        linkRest - the LinkRest annotation through which the related resource was discovered on the rest object.
        oldLinks - The previously traversed links
        Returns:
        true if allowed, false otherwise.
      • getPagingOptions

        public org.springframework.data.domain.PageRequest getPagingOptions​(String rel,
                                                                            HALResource<? extends RestAddressableModel> resource,
                                                                            org.springframework.hateoas.Link... oldLinks)
        Description copied from interface: Projection
        This method will return the PageRequest object for a specific given rel
        Specified by:
        getPagingOptions in interface Projection
        Overrides:
        getPagingOptions in class AbstractProjection
        Parameters:
        rel - The rel for which the PageRequest object will be made
        resource - the resource from which the embed may or may not be made.
        oldLinks - The previously traversed links
        Returns:
        The PageRequest object for the given rel
      • setEmbedSizes

        public void setEmbedSizes​(Map<String,​Integer> embedSizes)