Class HalLinker


  • public class HalLinker
    extends java.lang.Object
    A stateful linker which collects information about the links it creates.
    Author:
    Daniel Meyer
    • Field Detail

      • hal

        protected final Hal hal
      • resource

        protected final HalResource<?> resource
        The HalResource on which the links are constructed
    • Constructor Detail

    • Method Detail

      • createLink

        public void createLink​(HalRelation rel,
                               java.lang.String... pathParams)
        Creates a link in a given relation.
        Parameters:
        rel - the HalRelation for which a link should be constructed
        pathParams - the path params to populate the url template with.
      • getLinkedRelations

        public java.util.Set<HalRelation> getLinkedRelations()
      • getLinkedResourceIdsByRelation

        public java.util.Set<java.lang.String> getLinkedResourceIdsByRelation​(HalRelation relation)
      • resolve

        public java.util.List<HalResource<?>> resolve​(HalRelation relation,
                                                      ProcessEngine processEngine)
        Resolves a relation. Locates a HalLinkResolver for resolving the set of all linked resources in the relation.
        Parameters:
        relation - the relation to resolve
        processEngine - the process engine to use
        Returns:
        the list of resolved resources
        Throws:
        java.lang.RuntimeException - if no HalLinkResolver can be found for the linked resource type.
      • mergeLinks

        public void mergeLinks​(HalResource<?> embedded)
        merge the links of an embedded resource into this linker. This is useful when building resources which are actually resource collections. You can then merge the relations of all resources in the collection and the unique the set of linked resources to embed.
        Parameters:
        embedded - the embedded resource for which the links should be merged into this linker.