Interface Projection

    • Field Detail

      • DEFAULT

        static final Projection DEFAULT
        The default projection.
    • Method Detail

      • getName

        String getName()
        Gets the projection name.
        Returns:
        the name, which is a unique alphanumeric string.
      • transformModel

        <T> T transformModel​(T modelObject)
        Transforms the original model object (e.g. JPA entity) before conversion to a RestModel. This is a good place to omit data for certain properties that should not be included in the object's representation as a HALResource. Omitting these properties early helps to prevent unnecessary database calls for lazy-loaded properties that are unwanted for the projection.
        Type Parameters:
        T - the return type, which must be the same type as the given model object.
        Parameters:
        modelObject - the original model object, which may be of any type.
        Returns:
        the transformed model object, or the original, if the projection does not modify it.
      • transformRest

        <T extends RestModel> T transformRest​(T restObject)
        Transforms the rest object after it was converted from a model object. This may add data to, or omit data from the rest representation of the object.
        Type Parameters:
        T - the return type, which must be of the same type as the given rest object.
        Parameters:
        restObject - the rest object.
        Returns:
        the transformed rest object, or the original, if the projection does not modify it.
      • transformResource

        <T extends HALResource> T transformResource​(T halResource)
        Transforms the resource object after it has been constructed and any constructor or annotation-based links and embeds have been added. This may add data to, or omit data from the HAL resource representation of the object.
        Type Parameters:
        T - the return type, which must be of the same type as the given resource object.
        Parameters:
        halResource - the resource object.
        Returns:
        the transformed resource object, or the original, if the projection does not modify it.
      • allowEmbedding

        boolean allowEmbedding​(HALResource<? extends RestAddressableModel> halResource,
                               LinkRest linkRest,
                               org.springframework.hateoas.Link... oldLinks)
        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 allowLinking(HALResource, LinkRest) returns.
        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.
      • allowLinking

        boolean allowLinking​(HALResource halResource,
                             LinkRest linkRest)
        Tells whether this projection permits the linking of a particular linkable subresource. This gives the projection an opportunity to opt in to to certain links, by returning true. Note: If allowEmbedding(HALResource, LinkRest, Link...) returns true for a given subresource, it will be automatically linked regardless of what this method returns.
        Parameters:
        halResource - the resource from which the link may or may not be made.
        linkRest - the LinkRest annotation through which the related resource was discovered on the rest object.
        Returns:
        true if allowed, false otherwise.
      • getPagingOptions

        org.springframework.data.domain.PageRequest getPagingOptions​(String rel,
                                                                     HALResource<? extends RestAddressableModel> resource,
                                                                     org.springframework.hateoas.Link... oldLinks)
        This method will return the PageRequest object for a specific given rel
        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