Class BasicAuthEndpointBuilder

  • All Implemented Interfaces:
    org.refcodes.component.Closable, org.refcodes.component.Closable.CloseBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<BasicAuthEndpointBuilder>>, org.refcodes.component.ConnectionStatusAccessor, org.refcodes.component.LinkComponent, org.refcodes.component.LinkComponent.LinkComponentBuilder<BasicAuthEndpointBuilder>, org.refcodes.component.Openable, org.refcodes.component.Openable.OpenBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<BasicAuthEndpointBuilder>>, org.refcodes.component.OpenedAccessor, BasicAuthEndpoint, org.refcodes.web.BasicAuthObserver, org.refcodes.web.HttpMethodAccessor, org.refcodes.web.HttpMethodAccessor.HttpMethodBuilder<BasicAuthEndpointBuilder>, org.refcodes.web.HttpMethodAccessor.HttpMethodMutator, org.refcodes.web.HttpMethodAccessor.HttpMethodProperty

    public class BasicAuthEndpointBuilder
    extends Object
    implements BasicAuthEndpoint, org.refcodes.web.HttpMethodAccessor.HttpMethodProperty, org.refcodes.web.HttpMethodAccessor.HttpMethodBuilder<BasicAuthEndpointBuilder>, org.refcodes.component.LinkComponent.LinkComponentBuilder<BasicAuthEndpointBuilder>, org.refcodes.component.ConnectionStatusAccessor
    A BasicAuthEndpointBuilder extends an BasicAuthEndpoint with builder functionality and adds lambda support for handling the requests addressed to this BasicAuthEndpoint. The lambda defined as BasicAuthObserver acts as the single listener to this BasicAuthEndpoint responsible for handling the requests for which this BasicAuthEndpoint is responsible. The locator for which an BasicAuthEndpointBuilder is responsible for is defined by the BasicAuthEndpointBuilder'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 RestRequestEvent.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 RestRequestEvent.getWildcardReplacement(String). For ease of use, a named wildcard with single asterisk ("*") such as "${arg1}=*" can be abbreviated as "${arg1}".
    • Field Detail

      • _requestObserver

        protected org.refcodes.web.BasicAuthObserver _requestObserver
      • _httpMethod

        protected org.refcodes.web.HttpMethod _httpMethod
      • _locatorPattern

        protected String _locatorPattern
      • _connectionStatus

        protected org.refcodes.component.ConnectionStatus _connectionStatus
    • Method Detail

      • withLocatorPathPattern

        public BasicAuthEndpointBuilder withLocatorPathPattern​(String aLocatorPathPattern)
        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 RestRequestEvent.getWildcardReplacement(String). For ease of use, a named wildcard with single asterisk ("*") such as "${arg1}=*" can be abbreviated as "${arg1}".
        Parameters:
        aLocatorPathPattern - the locator pattern
        Returns:
        The BasicAuthEndpoint builder to continue configuration (as of the Builder-Pattern).
      • withRequestObserver

        public BasicAuthEndpointBuilder withRequestObserver​(org.refcodes.web.BasicAuthObserver aLambda)
        Builder method for setting the BasicAuthObserver.
        Parameters:
        aLambda - The (user defined) BasicAuthObserver to handle requests, feel free to code it as lambda expression
        Returns:
        The BasicAuthEndpointBuilder for the sake of a fluent API.
      • withCloseQuietly

        public BasicAuthEndpointBuilder withCloseQuietly()
        Specified by:
        withCloseQuietly in interface org.refcodes.component.Closable.CloseBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<BasicAuthEndpointBuilder>>
      • withCloseIn

        public BasicAuthEndpointBuilder withCloseIn​(int aCloseInMillis)
        Specified by:
        withCloseIn in interface org.refcodes.component.Closable.CloseBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<BasicAuthEndpointBuilder>>
      • setLocatorPathPattern

        public void setLocatorPathPattern​(String aLocatorPathPattern)
        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 RestRequestEvent.getWildcardReplacement(String). For ease of use, a named wildcard with single asterisk ("*") such as "${arg1}=*" can be abbreviated as "${arg1}".
        Parameters:
        aLocatorPathPattern - the new locator pattern
      • setHttpMethod

        public void setHttpMethod​(org.refcodes.web.HttpMethod aHttpMethod)
        Specified by:
        setHttpMethod in interface org.refcodes.web.HttpMethodAccessor.HttpMethodMutator
      • onBasicAuthRequest

        public org.refcodes.web.BasicAuthResponse onBasicAuthRequest​(InetSocketAddress aLocalAddress,
                                                                     InetSocketAddress aRemoteAddress,
                                                                     org.refcodes.web.HttpMethod aHttpMethod,
                                                                     String aLocator,
                                                                     org.refcodes.web.BasicAuthCredentials aCredentials,
                                                                     String aRealm)
        Specified by:
        onBasicAuthRequest in interface org.refcodes.web.BasicAuthObserver
      • getHttpMethod

        public org.refcodes.web.HttpMethod getHttpMethod()
        Specified by:
        getHttpMethod in interface org.refcodes.web.HttpMethodAccessor
      • getLocatorPathPattern

        public String getLocatorPathPattern()
        Retrieves the resource Locator-Pattern this endpoint has been registered to. The Locator-Pattern 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. 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 RestRequestEvent's method RestRequestEvent.getWildcardReplacements() inside the BasicAuthObserver.onBasicAuthRequest(java.net.InetSocketAddress, java.net.InetSocketAddress, HttpMethod, String, org.refcodes.web.BasicAuthCredentials, String) method. You may name a wildcard by prefixing it with "{someWildcardName}". For example a named wildcard may look as follows: "{arg1}*" or "{arg2}**" or "{arg3}?". The RestRequestEvent lets you access the wildcard substitutes either by index or by name.
        Specified by:
        getLocatorPathPattern in interface BasicAuthEndpoint
      • open

        public void open()
                  throws IOException
        Specified by:
        open in interface org.refcodes.component.Openable
        Throws:
        IOException
      • close

        public void close()
                   throws IOException
        Specified by:
        close in interface org.refcodes.component.Closable
        Throws:
        IOException
      • getConnectionStatus

        public org.refcodes.component.ConnectionStatus getConnectionStatus()
        Specified by:
        getConnectionStatus in interface org.refcodes.component.ConnectionStatusAccessor