Package org.refcodes.rest
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
AnRestEndpointBuilderextends anRestEndpointwith builder functionality and addslambdasupport for handling the requests addressed to thisRestEndpoint. Thelambdadefined asRestRequestObserveracts as the single listener to thisRestEndpointresponsible for handling the requests for which thisRestEndpointis responsible. The locator for which anRestEndpointBuilderis responsible for is defined by theRestEndpointBuilder'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 methodWildcardSubstitutes.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 methodWildcardSubstitutes.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
-
-
Method Summary
-
Methods inherited from interface org.refcodes.component.Closable
close, closeIn, closeQuietly, closeUnchecked
-
Methods inherited from interface org.refcodes.component.ConnectionStatusAccessor
getConnectionStatus, isConnectionOpened
-
Methods inherited from interface org.refcodes.net.HttpMethodAccessor.HttpMethodMutator
setHttpMethod
-
Methods inherited from interface org.refcodes.rest.RestEndpoint
getLocatorPattern
-
Methods inherited from interface org.refcodes.rest.RestRequestObserver
onRequest
-
-
-
-
Method Detail
-
withHttpMethod
default RestEndpointBuilder withHttpMethod(org.refcodes.net.HttpMethod aHttpMethod)
- Specified by:
withHttpMethodin interfaceorg.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 methodWildcardSubstitutes.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
RestEndpointbuilder 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 methodWildcardSubstitutes.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
-
getRequestObserver
RestRequestObserver getRequestObserver()
Retrieves theRestRequestObserverto which any requests are delegated upon invocation of theRestRequestObserver.onRequest(RestRequestEvent, org.refcodes.net.HttpServerResponse)method.- Returns:
- The (user defined)
RestRequestObserverto handle requests.
-
setRequestObserver
void setRequestObserver(RestRequestObserver aLambda)
Sets theRestRequestObserverto which any requests are delegated upon invocation of theRestRequestObserver.onRequest(RestRequestEvent, org.refcodes.net.HttpServerResponse)method.- Parameters:
aLambda- The (user defined)RestRequestObserverto handle requests, feel free to code it aslambdaexpression!
-
withRequestObserver
default RestEndpointBuilder withRequestObserver(RestRequestObserver aLambda)
Builder method for setting theRestRequestObserver.- Parameters:
aLambda- The (user defined)RestRequestObserverto handle requests, feel free to code it aslambdaexpression- Returns:
- The
RestEndpointBuilderfor the sake of a fluent API.
-
withOpen
default RestEndpointBuilder withOpen() throws org.refcodes.component.OpenException
- Specified by:
withOpenin interfaceorg.refcodes.component.Openable.OpenBuilder<RestEndpointBuilder>- Throws:
org.refcodes.component.OpenException
-
withClose
default RestEndpointBuilder withClose() throws org.refcodes.component.CloseException
- Specified by:
withClosein interfaceorg.refcodes.component.Closable.CloseBuilder<RestEndpointBuilder>- Throws:
org.refcodes.component.CloseException
-
withCloseQuietly
default RestEndpointBuilder withCloseQuietly()
- Specified by:
withCloseQuietlyin interfaceorg.refcodes.component.Closable.CloseBuilder<RestEndpointBuilder>
-
withCloseIn
default RestEndpointBuilder withCloseIn(int aCloseInMillis)
- Specified by:
withCloseInin interfaceorg.refcodes.component.Closable.CloseBuilder<RestEndpointBuilder>
-
-