Class EmbedRelsProjection

java.lang.Object
org.dspace.app.rest.projection.AbstractProjection
org.dspace.app.rest.projection.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
  • Field Details

  • Constructor Details

    • 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 Details

    • 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
    • getEmbedSizes

      public Map<String,Integer> getEmbedSizes()
    • setEmbedSizes

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