Class DelegatingEntityLinks

java.lang.Object
org.springframework.hateoas.server.core.DelegatingEntityLinks
All Implemented Interfaces:
EntityLinks, org.springframework.plugin.core.Plugin<Class<?>>

public class DelegatingEntityLinks extends Object implements EntityLinks
EntityLinks implementation that delegates to the EntityLinks instances registered in the PluginRegistry given on instance creation.
Author:
Oliver Gierke
  • Constructor Details

    • DelegatingEntityLinks

      public DelegatingEntityLinks(org.springframework.plugin.core.PluginRegistry<EntityLinks,Class<?>> plugins)
      Creates a new DelegatingEntityLinks using the given PluginRegistry.
      Parameters:
      plugins - must not be null.
  • Method Details

    • linkFor

      public LinkBuilder linkFor(Class<?> type)
      Description copied from interface: EntityLinks
      Returns a LinkBuilder able to create links to the controller managing the given entity type. Expects a controller being mapped to a fully expanded URI template (i.e. not path variables being used).
      Specified by:
      linkFor in interface EntityLinks
      Parameters:
      type - the entity type to point to, must not be null.
      Returns:
      the LinkBuilder pointing to the collection resource. Will never be null.
    • linkFor

      public LinkBuilder linkFor(Class<?> type, Object... parameters)
      Description copied from interface: EntityLinks
      Returns a LinkBuilder able to create links to the controller managing the given entity type, unfolding the given parameters into the URI template the backing controller is mapped to.
      Specified by:
      linkFor in interface EntityLinks
      Parameters:
      type - the entity type to point to, must not be null.
      Returns:
      the LinkBuilder pointing to the collection resource.
    • linkToCollectionResource

      public Link linkToCollectionResource(Class<?> type)
      Description copied from interface: EntityLinks
      Creates a Link pointing to the collection resource of the given type. The relation type of the link will be determined by the implementation class and should be defaulted to IanaLinkRelations.SELF.
      Specified by:
      linkToCollectionResource in interface EntityLinks
      Parameters:
      type - the entity type to point to, must not be null.
      Returns:
      the Link pointing to the collection resource exposed for the given entity. Will never be null.
    • linkToItemResource

      public Link linkToItemResource(Class<?> type, Object id)
      Description copied from interface: EntityLinks
      Creates a Link pointing to item resource backing the given entity type and id. The relation type of the link will be determined by the implementation class and should be defaulted to IanaLinkRelations.SELF.
      Specified by:
      linkToItemResource in interface EntityLinks
      Parameters:
      type - the entity type to point to, must not be null.
      id - the identifier of the entity of the given type
      Returns:
      the Link pointing to the resource exposed for the entity with the given type and id. Will never be null.
    • linkForItemResource

      public LinkBuilder linkForItemResource(Class<?> type, Object id)
      Description copied from interface: EntityLinks
      Returns a LinkBuilder able to create links to the controller managing the given entity type and id. Implementations will know about the URI structure being used to expose item-resource URIs.
      Specified by:
      linkForItemResource in interface EntityLinks
      Parameters:
      type - the entity type to point to, must not be null.
      id - the id of the object of the handed type, must not be null.
      Returns:
      the LinkBuilder pointing to the item resource identified by the given type and id. Will never be null.
    • supports

      public boolean supports(Class<?> delimiter)
      Specified by:
      supports in interface org.springframework.plugin.core.Plugin<Class<?>>