Class DefaultCurieProvider

java.lang.Object
org.springframework.hateoas.mediatype.hal.DefaultCurieProvider
All Implemented Interfaces:
CurieProvider

public class DefaultCurieProvider extends Object implements CurieProvider
Default implementation of CurieProvider rendering a single configurable UriTemplate based curie.
Since:
0.9
Author:
Oliver Gierke, Jeff Stano, Greg Turnquist
  • Constructor Details

    • DefaultCurieProvider

      public DefaultCurieProvider(String name, UriTemplate uriTemplate)
      Creates a new DefaultCurieProvider for the given name and UriTemplate. The curie will be used to expand previously unprefixed, non-IANA link relations.
      Parameters:
      name - must not be null or empty.
      uriTemplate - must not be null and contain exactly one template variable.
    • DefaultCurieProvider

      public DefaultCurieProvider(Map<String,UriTemplate> curies)
      Creates a new DefaultCurieProvider for the given curies. If more than one curie is given, no default curie will be registered. Use DefaultCurieProvider(Map, String) to define which of the provided curies shall be used as the default one.
      Parameters:
      curies - must not be null.
      Since:
      0.19
      See Also:
    • DefaultCurieProvider

      public DefaultCurieProvider(Map<String,UriTemplate> curies, @Nullable String defaultCurieName)
      Creates a new DefaultCurieProvider for the given curies using the one with the given name as default, which means to expand unprefixed, non-IANA link relations.
      Parameters:
      curies - must not be null.
      defaultCurieName - can be null.
      Since:
      0.19
  • Method Details

    • getCurieInformation

      public Collection<?> getCurieInformation(Links links)
      Description copied from interface: CurieProvider
      Returns an object to render as the base curie information. Implementations have to make sure, the returned instances renders as defined in the spec.
      Specified by:
      getCurieInformation in interface CurieProvider
      Parameters:
      links - the Links that have been added to the response so far.
      Returns:
      must not be null.
    • getNamespacedRelFrom

      public HalLinkRelation getNamespacedRelFrom(Link link)
      Description copied from interface: CurieProvider
      Returns the rel to be rendered for the given Link. Will potentially prefix the rel but also might decide not to, depending on the actual rel.
      Specified by:
      getNamespacedRelFrom in interface CurieProvider
      Returns:
    • getNamespacedRelFor

      public HalLinkRelation getNamespacedRelFor(LinkRelation relation)
      Description copied from interface: CurieProvider
      Returns the rel to be rendered for the given rel. Will potentially prefix the rel but also might decide not to, depending on the actual rel.
      Specified by:
      getNamespacedRelFor in interface CurieProvider
      Returns:
    • getCurieHref

      protected String getCurieHref(String name, UriTemplate template)
      Returns the href for the DefaultCurieProvider.Curie instance to be created. Will prepend the current application URI (servlet mapping) in case the template is not an absolute one in the first place.
      Parameters:
      name - will never be null or empty.
      template - will never be null.
      Returns:
      the String to be used as href in the DefaultCurieProvider.Curie to be created, must not be null.