public class Router extends Restlet
Modifier and Type | Field and Description |
---|---|
static int |
MODE_BEST_MATCH
Each call will be routed to the route with the best score, if the
required score is reached.
|
static int |
MODE_CUSTOM
Each call will be routed according to a custom mode.
|
static int |
MODE_FIRST_MATCH
Each call is routed to the first route if the required score is reached.
|
static int |
MODE_LAST_MATCH
Each call will be routed to the last route if the required score is
reached.
|
static int |
MODE_NEXT_MATCH
Each call is routed to the next route target if the required score is
reached.
|
static int |
MODE_RANDOM_MATCH
Each call will be randomly routed to one of the routes that reached the
required score.
|
Constructor and Description |
---|
Router()
Constructor.
|
Router(Context context)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
TemplateRoute |
attach(Restlet target)
Attaches a target Restlet to this router with an empty URI pattern.
|
TemplateRoute |
attach(Restlet target,
int matchingMode)
Attaches a target Restlet to this router with an empty URI pattern.
|
TemplateRoute |
attach(java.lang.String pathTemplate,
java.lang.Class<? extends ServerResource> targetClass)
Attaches a target Resource class to this router based on a given URI
pattern.
|
TemplateRoute |
attach(java.lang.String pathTemplate,
java.lang.Class<? extends ServerResource> targetClass,
int matchingMode)
Attaches a target Resource class to this router based on a given URI
pattern.
|
TemplateRoute |
attach(java.lang.String pathTemplate,
Restlet target)
Attaches a target Restlet to this router based on a given URI pattern.
|
TemplateRoute |
attach(java.lang.String pathTemplate,
Restlet target,
int matchingMode)
Attaches a target Restlet to this router based on a given URI pattern.
|
TemplateRoute |
attachDefault(java.lang.Class<? extends ServerResource> defaultTargetClass)
Attaches a Resource class to this router as the default target to invoke
when no route matches.
|
TemplateRoute |
attachDefault(Restlet defaultTarget)
Attaches a Restlet to this router as the default target to invoke when no
route matches.
|
protected TemplateRoute |
createRoute(java.lang.String uriPattern,
Restlet target)
Creates a new route for the given URI pattern and target.
|
protected TemplateRoute |
createRoute(java.lang.String uriPattern,
Restlet target,
int matchingMode)
Creates a new route for the given URI pattern, target and matching mode.
|
void |
detach(java.lang.Class<?> targetClass)
Detaches the target from this router.
|
void |
detach(Restlet target)
Detaches the target from this router.
|
protected void |
doHandle(Restlet next,
Request request,
Response response)
|
protected Route |
getCustom(Request request,
Response response)
Returns the matched route according to a custom algorithm.
|
int |
getDefaultMatchingMode()
Returns the default matching mode to use when selecting routes based on
URIs.
|
boolean |
getDefaultMatchingQuery()
Returns the default setting for whether the routing should be done on
URIs with or without taking into account query string.
|
Route |
getDefaultRoute()
Returns the default route to test if no other one was available after
retrying the maximum number of attempts.
|
protected int |
getMatchingMode(Restlet target)
Returns the matching mode for the target Restlet.
|
int |
getMaxAttempts()
Returns the maximum number of attempts if no attachment could be matched
on the first attempt.
|
Restlet |
getNext(Request request,
Response response)
Returns the next Restlet if available.
|
float |
getRequiredScore()
Returns the minimum score required to have a match.
|
long |
getRetryDelay()
Returns the delay in milliseconds before a new attempt is made.
|
RouteList |
getRoutes()
Returns the modifiable list of routes.
|
int |
getRoutingMode()
Returns the routing mode.
|
void |
handle(Request request,
Response response)
Handles a call by invoking the next Restlet if it is available.
|
protected void |
logRoute(Route route)
Logs the route selected.
|
TemplateRoute |
redirectPermanent(java.lang.String pathTemplate,
java.lang.String targetUri)
Attaches a permanent redirection to this router based on a given URI
pattern.
|
TemplateRoute |
redirectSeeOther(java.lang.String pathTemplate,
java.lang.String targetUri)
Attaches a redirection to this router based on a given URI pattern.
|
TemplateRoute |
redirectTemporary(java.lang.String pathTemplate,
java.lang.String targetUri)
Attaches a temporary redirection to this router based on a given URI
pattern.
|
void |
setDefaultMatchingMode(int defaultMatchingMode)
Sets the default matching mode to use when selecting routes based on
URIs.
|
void |
setDefaultMatchingQuery(boolean defaultMatchingQuery)
Sets the default setting for whether the routing should be done on URIs
with or without taking into account query string.
|
void |
setDefaultRoute(Route defaultRoute)
Sets the default route tested if no other one was available.
|
void |
setMaxAttempts(int maxAttempts)
Sets the maximum number of attempts if no attachment could be matched on
the first attempt.
|
void |
setRequiredScore(float score)
Sets the score required to have a match.
|
void |
setRetryDelay(long retryDelay)
Sets the delay in milliseconds before a new attempt is made.
|
void |
setRoutes(RouteList routes)
Sets the modifiable list of routes.
|
void |
setRoutingMode(int routingMode)
Sets the routing mode.
|
void |
start()
Starts the filter and the attached routes.
|
void |
stop()
Stops the filter and the attached routes.
|
createFinder, finalize, getApplication, getAuthor, getContext, getDescription, getFinderClass, getLogger, getName, getOwner, handle, handle, handle, isStarted, isStopped, setAuthor, setContext, setDescription, setFinderClass, setName, setOwner
public static final int MODE_BEST_MATCH
RouteList.getBest(Request, Response, float)
method for
implementation details.public static final int MODE_CUSTOM
getCustom(Request, Response)
method to provide your own logic.public static final int MODE_FIRST_MATCH
RouteList.getFirst(Request, Response, float)
method for
implementation details.public static final int MODE_LAST_MATCH
RouteList.getLast(Request, Response, float)
method for
implementation details.public static final int MODE_NEXT_MATCH
RouteList.getNext(Request, Response, float)
method for
implementation details.public static final int MODE_RANDOM_MATCH
RouteList.getRandom(Request, Response, float)
method for
implementation details.public Router()
public Router(Context context)
context
- The context.public TemplateRoute attach(Restlet target)
getMatchingMode(Restlet)
will be added routing to the target
when any call is received.target
- The target Restlet to attach.public TemplateRoute attach(Restlet target, int matchingMode)
target
- The target Restlet to attach.matchingMode
- The matching mode.public TemplateRoute attach(java.lang.String pathTemplate, java.lang.Class<? extends ServerResource> targetClass)
getMatchingMode(Restlet)
will be added routing to the target
when calls with a URI matching the pattern will be received.pathTemplate
- The URI path template that must match the relative part of the
resource URI.targetClass
- The target Resource class to attach.public TemplateRoute attach(java.lang.String pathTemplate, java.lang.Class<? extends ServerResource> targetClass, int matchingMode)
pathTemplate
- The URI path template that must match the relative part of the
resource URI.targetClass
- The target Resource class to attach.matchingMode
- The matching mode.public TemplateRoute attach(java.lang.String pathTemplate, Restlet target)
getMatchingMode(Restlet)
will be added routing to the target
when calls with a URI matching the pattern will be received.pathTemplate
- The URI path template that must match the relative part of the
resource URI.target
- The target Restlet to attach.public TemplateRoute attach(java.lang.String pathTemplate, Restlet target, int matchingMode)
pathTemplate
- The URI path template that must match the relative part of the
resource URI.target
- The target Restlet to attach.matchingMode
- The matching mode.public TemplateRoute attachDefault(java.lang.Class<? extends ServerResource> defaultTargetClass)
defaultTargetClass
- The target Resource class to attach.public TemplateRoute attachDefault(Restlet defaultTarget)
defaultTarget
- The Restlet to use as the default target.protected TemplateRoute createRoute(java.lang.String uriPattern, Restlet target)
getDefaultMatchingQuery()
and the matching mode will be given by
getMatchingMode(Restlet)
.uriPattern
- The URI pattern that must match the relative part of the
resource URI.target
- The target Restlet to attach.protected TemplateRoute createRoute(java.lang.String uriPattern, Restlet target, int matchingMode)
getDefaultMatchingQuery()
.uriPattern
- The URI pattern that must match the relative part of the
resource URI.target
- The target Restlet to attach.matchingMode
- The matching mode.public void detach(java.lang.Class<?> targetClass)
targetClass
- The target class to detach.public void detach(Restlet target)
target
- The target Restlet to detach.protected void doHandle(Restlet next, Request request, Response response)
Restlet
,
typically the selected Route
. By default, it just invokes the
next Restlet.next
- The next Restlet to invoke.request
- The request.response
- The response.protected Route getCustom(Request request, Response response)
MODE_CUSTOM
option. The default
implementation (to be overridden), returns null.request
- The request to handle.response
- The response to update.public int getDefaultMatchingMode()
Template.MODE_EQUALS
.public boolean getDefaultMatchingQuery()
public Route getDefaultRoute()
protected int getMatchingMode(Restlet target)
getDefaultMatchingMode()
. If the target is an instance of
Directory
or Router
then the mode returned is
Template.MODE_STARTS_WITH
to allow further routing by those
objects. If the target is an instance of Filter
, then it returns
the matching mode for the Filter.getNext()
Restlet recursively.target
- The target Restlet.public int getMaxAttempts()
public Restlet getNext(Request request, Response response)
request
- The request to handle.response
- The response to update.public float getRequiredScore()
0.5
.public long getRetryDelay()
500
.public RouteList getRoutes()
public int getRoutingMode()
MODE_FIRST_MATCH
mode.public void handle(Request request, Response response)
protected void logRoute(Route route)
route
- The route selected.public TemplateRoute redirectPermanent(java.lang.String pathTemplate, java.lang.String targetUri)
pathTemplate
- The URI path template that must match the relative part of the
resource URI.targetUri
- The target URI.public TemplateRoute redirectSeeOther(java.lang.String pathTemplate, java.lang.String targetUri)
pathTemplate
- The URI path template that must match the relative part of the
resource URI.targetUri
- The target URI.public TemplateRoute redirectTemporary(java.lang.String pathTemplate, java.lang.String targetUri)
pathTemplate
- The URI path template that must match the relative part of the
resource URI.targetUri
- The target URI.public void setDefaultMatchingMode(int defaultMatchingMode)
Template.MODE_EQUALS
.defaultMatchingMode
- The default matching mode.public void setDefaultMatchingQuery(boolean defaultMatchingQuery)
defaultMatchingQuery
- The default setting for whether the routing should be done on
URIs with or without taking into account query string.public void setDefaultRoute(Route defaultRoute)
defaultRoute
- The default route tested if no other one was available.public void setMaxAttempts(int maxAttempts)
maxAttempts
- The maximum number of attempts.public void setRequiredScore(float score)
0.5
.score
- The score required to have a match.public void setRetryDelay(long retryDelay)
500
.retryDelay
- The delay in milliseconds before a new attempt is made.public void setRoutes(RouteList routes)
routes
- The modifiable list of routes.public void setRoutingMode(int routingMode)
MODE_FIRST_MATCH
mode.routingMode
- The routing mode.public void start() throws java.lang.Exception
Copyright © 2005-2024 Restlet.