Interface RestEndpointBuilder

  • All Superinterfaces:
    org.refcodes.component.Closable, org.refcodes.component.Closable.CloseBuilder<RestEndpointBuilder>, org.refcodes.component.ConnectionStatusAccessor, org.refcodes.net.HttpMethodAccessor, org.refcodes.net.HttpMethodAccessor.HttpMethodBuilder<RestEndpointBuilder>, org.refcodes.net.HttpMethodAccessor.HttpMethodMutator, org.refcodes.net.HttpMethodAccessor.HttpMethodProperty, org.refcodes.component.LinkComponent, org.refcodes.component.LinkComponent.LinkComponentBuilder<RestEndpointBuilder>, org.refcodes.component.Openable, org.refcodes.component.Openable.OpenBuilder<RestEndpointBuilder>, RestEndpoint, RestRequestObserver
    All Known Implementing Classes:
    RestEndpointBuilderImpl


    public interface RestEndpointBuilder
    extends RestEndpoint, org.refcodes.net.HttpMethodAccessor.HttpMethodProperty, org.refcodes.net.HttpMethodAccessor.HttpMethodBuilder<RestEndpointBuilder>, org.refcodes.component.LinkComponent.LinkComponentBuilder<RestEndpointBuilder>, org.refcodes.component.ConnectionStatusAccessor
    An RestEndpointBuilder extends an RestEndpoint with builder functionality and adds lambda support for handling the requests addressed to this RestEndpoint. The lambda defined as RestRequestObserver acts as the single listener to this RestEndpoint responsible for handling the requests for which this RestEndpoint is responsible. The locator for which an RestEndpointBuilder is responsible for is defined by the RestEndpointBuilder's Locator-Pattern: A single asterisk ("*") matches zero or more characters within a locator name. A double asterisk ("**") matches zero or more characters across directory levels. A question mark ("?") matches exactly one character within a locator name. The single asterisk ("*"), the double asterisk ("**") and the question mark ("?") we refer to as wildcard: You get an array with the substitutes of the wildcards using the method WildcardSubstitutes.getWildcardReplacements() . You may name a wildcard by prefixing it with "${someWildcardName}". For example a named wildcard may look as follows: "${arg1}=*" or "${arg2}=**" or "${arg3}=?". You can get the text substituting a named wildcard using the method WildcardSubstitutes.getWildcardReplacement(String). For ease of use, a named wildcard with single asterisk ("*") such as "${arg1}=*" can be abbreviated as "${arg1}".
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.refcodes.component.Closable

        org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends org.refcodes.component.Closable.CloseBuilder<B>>
      • Nested classes/interfaces inherited from interface org.refcodes.component.ConnectionStatusAccessor

        org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusMutator, org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusProperty
      • Nested classes/interfaces inherited from interface org.refcodes.net.HttpMethodAccessor

        org.refcodes.net.HttpMethodAccessor.HttpMethodBuilder<B extends org.refcodes.net.HttpMethodAccessor.HttpMethodBuilder<B>>, org.refcodes.net.HttpMethodAccessor.HttpMethodMutator, org.refcodes.net.HttpMethodAccessor.HttpMethodProperty
      • Nested classes/interfaces inherited from interface org.refcodes.component.LinkComponent

        org.refcodes.component.LinkComponent.LinkAutomaton, org.refcodes.component.LinkComponent.LinkComponentBuilder<B extends org.refcodes.component.LinkComponent.LinkComponentBuilder<B>>
      • Nested classes/interfaces inherited from interface org.refcodes.component.Openable

        org.refcodes.component.Openable.OpenAutomaton, org.refcodes.component.Openable.OpenBuilder<B extends org.refcodes.component.Openable.OpenBuilder<B>>
    • Method Detail

      • withHttpMethod

        default RestEndpointBuilder withHttpMethod​(org.refcodes.net.HttpMethod aHttpMethod)
        Specified by:
        withHttpMethod in interface org.refcodes.net.HttpMethodAccessor.HttpMethodBuilder<RestEndpointBuilder>
      • withLocatorPattern

        default RestEndpointBuilder withLocatorPattern​(java.lang.String aLocatorPattern)
        Sets the resource locator as of the Builder-Pattern. The locator may contain wildcards as known from file-systems as follows: A single asterisk ("*") matches zero or more characters within a locator name. A double asterisk ("**") matches zero or more characters across directory levels. A question mark ("?") matches exactly one character within a locator name. You may name a wildcard by prefixing it with "${someWildcardName}". For example a named wildcard may look as follows: "${arg1}=*" or "${arg2}=**" or "${arg3}=?". You can get the text substituting a named wildcard using the method WildcardSubstitutes.getWildcardReplacement(String). For ease of use, a named wildcard with single asterisk ("*") such as "${arg1}=*" can be abbreviated as "${arg1}".
        Parameters:
        aLocatorPattern - the locator pattern
        Returns:
        The RestEndpoint builder to continue configuration (as of the Builder-Pattern).
      • setLocatorPattern

        void setLocatorPattern​(java.lang.String aLocatorPattern)
        Sets the resource locator. The locator may contain wildcards as known from file-systems as follows: A single asterisk ("*") matches zero or more characters within a locator name. A double asterisk ("**") matches zero or more characters across directory levels. A question mark ("?") matches exactly one character within a locator name. You may name a wildcard by prefixing it with "${someWildcardName}". For example a named wildcard may look as follows: "${arg1}=*" or "${arg2}=**" or "${arg3}=?". You can get the text substituting a named wildcard using the method WildcardSubstitutes.getWildcardReplacement(String). For ease of use, a named wildcard with single asterisk ("*") such as "${arg1}=*" can be abbreviated as "${arg1}".
        Parameters:
        aLocatorPattern - the new locator pattern
      • withOpen

        default RestEndpointBuilder withOpen​()
                                      throws org.refcodes.component.OpenException
        Specified by:
        withOpen in interface org.refcodes.component.Openable.OpenBuilder<RestEndpointBuilder>
        Throws:
        org.refcodes.component.OpenException
      • withClose

        default RestEndpointBuilder withClose​()
                                       throws org.refcodes.component.CloseException
        Specified by:
        withClose in interface org.refcodes.component.Closable.CloseBuilder<RestEndpointBuilder>
        Throws:
        org.refcodes.component.CloseException