Class BasicAuthEndpointBuilder

java.lang.Object
org.refcodes.rest.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 Details

    • _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
  • Constructor Details

  • Method Details

    • withHttpMethod

      public BasicAuthEndpointBuilder withHttpMethod(org.refcodes.web.HttpMethod aHttpMethod)
      Specified by:
      withHttpMethod in interface org.refcodes.web.HttpMethodAccessor.HttpMethodBuilder<BasicAuthEndpointBuilder>
    • 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.
    • withOpen

      public BasicAuthEndpointBuilder withOpen() throws IOException
      Specified by:
      withOpen in interface org.refcodes.component.Openable.OpenBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<BasicAuthEndpointBuilder>>
      Throws:
      IOException
    • withClose

      public BasicAuthEndpointBuilder withClose() throws IOException
      Specified by:
      withClose in interface org.refcodes.component.Closable.CloseBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<BasicAuthEndpointBuilder>>
      Throws:
      IOException
    • 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 aCloseMillis)
      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
    • setRequestObserver

      public void setRequestObserver(org.refcodes.web.BasicAuthObserver aLambda)
      Sets the BasicAuthObserver to which any requests are delegated upon invocation of the onBasicAuthRequest(java.net.InetSocketAddress, java.net.InetSocketAddress, HttpMethod, String, org.refcodes.web.BasicAuthCredentials, String) method.
      Parameters:
      aLambda - The (user defined) BasicAuthObserver to handle requests, feel free to code it as lambda expression!
    • getRequestObserver

      public org.refcodes.web.BasicAuthObserver getRequestObserver()
      Retrieves the BasicAuthObserver to which any requests are delegated upon invocation of the onBasicAuthRequest(java.net.InetSocketAddress, java.net.InetSocketAddress, HttpMethod, String, org.refcodes.web.BasicAuthCredentials, String) method.
      Returns:
      The (user defined) BasicAuthObserver to handle requests.
    • 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