public class ComponentRoute extends Object implements Serializable, org.springframework.core.Ordered
Domain used for representing a "route" in the admin application. This route can be tied to a
metadata Component
using componentId
, or this route can be tied to a
non-metadata named component using componentName
.
// a route to a metadata component by ID
ComponentRoute.builder().path("/products").componentId("catalog:products:list").build();
// a route to a non-metadata component by name
ComponentRoute.builder().path("/workflow").componentName("MY_CHANGES").build();
for the java
method of providing routes
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
ComponentRoute.ComponentRouteBuilder |
Constructor and Description |
---|
ComponentRoute(String path,
String componentId,
String componentName,
List<String> scopes,
boolean exact,
int order,
Predicate<org.springframework.web.context.request.WebRequest> predicate) |
Modifier and Type | Method and Description |
---|---|
static ComponentRoute.ComponentRouteBuilder |
builder() |
String |
getComponentId()
The
Component.id(java.lang.String) of the Component that will be rendered for this route. |
String |
getComponentName()
The name of the component that will be rendered for this route.
|
int |
getOrder()
The order of this route.
|
String |
getPath()
The path for this route in the admin application, e.g.
|
Predicate<org.springframework.web.context.request.WebRequest> |
getPredicate()
A
Predicate for this route. |
List<String> |
getScopes()
The scopes that the user must have at least one with "READ" access for this route to render.
|
boolean |
isExact()
Whether or not the route requires an exact match to render.
|
void |
setComponentId(String componentId)
The
Component.id(java.lang.String) of the Component that will be rendered for this route. |
void |
setComponentName(String componentName)
The name of the component that will be rendered for this route.
|
void |
setExact(boolean exact)
Whether or not the route requires an exact match to render.
|
void |
setOrder(int order)
The order of this route.
|
void |
setPath(String path)
The path for this route in the admin application, e.g.
|
void |
setPredicate(Predicate<org.springframework.web.context.request.WebRequest> predicate)
A
Predicate for this route. |
void |
setScopes(List<String> scopes)
The scopes that the user must have at least one with "READ" access for this route to render.
|
boolean |
test(org.springframework.web.context.request.WebRequest request)
Evaluates the predicate on the given
WebRequest . |
public boolean test(org.springframework.web.context.request.WebRequest request)
WebRequest
.request
- the web requestpublic static ComponentRoute.ComponentRouteBuilder builder()
public String getPath()
This supports any valid URL path that https://github.com/pillarjs/path-to-regexp/tree/v1.7.0 understands, e.g. "/products", "/products/:id", and "/categories/:id?" are all valid URL paths. Must start with a slash, and optionally may include any path parameters as necessary.
public String getComponentId()
Component.id(java.lang.String)
of the Component
that will be rendered for this route.public String getComponentName()
componentId
for non-metadata-driven components like "not found"
views.
This should not be used if componentId
is provided.public List<String> getScopes()
public boolean isExact()
Whether or not the route requires an exact match to render. This is typically true, but can be set to false when you have a component that needs support for sub-routes.
Setting this to Boolean.FALSE
will allow partial matching of the url. See the table
below for how exact and non-exact routes work.
path | location.pathname | exact | matches? |
---|---|---|---|
/one |
/one/two |
true |
no |
/one |
/one/two |
false |
yes |
Refer to https://reacttraining.com/react-router/web/api/Route/exact-bool for more details.
public int getOrder()
The order of this route. This can be used to ensure that routes are returned in a certain order. The ordering of routes can matter as a route that is provided earlier takes precedence over a route provided later.
As an example, take a route with a path of "/products/create" and one with a path of "/products/:id". If "/products/create" comes after "/products/:id", then it will never be matched, because they are equal precedence and "/products/:id" will match first.
getOrder
in interface org.springframework.core.Ordered
public Predicate<org.springframework.web.context.request.WebRequest> getPredicate()
Predicate
for this route. This will be used to evaluate whether or not this route
should be returned for a given WebRequest
.public void setPath(String path)
This supports any valid URL path that https://github.com/pillarjs/path-to-regexp/tree/v1.7.0 understands, e.g. "/products", "/products/:id", and "/categories/:id?" are all valid URL paths. Must start with a slash, and optionally may include any path parameters as necessary.
public void setComponentId(String componentId)
Component.id(java.lang.String)
of the Component
that will be rendered for this route.public void setComponentName(String componentName)
componentId
for non-metadata-driven components like "not found"
views.
This should not be used if componentId
is provided.public void setScopes(List<String> scopes)
public void setExact(boolean exact)
Whether or not the route requires an exact match to render. This is typically true, but can be set to false when you have a component that needs support for sub-routes.
Setting this to Boolean.FALSE
will allow partial matching of the url. See the table
below for how exact and non-exact routes work.
path | location.pathname | exact | matches? |
---|---|---|---|
/one |
/one/two |
true |
no |
/one |
/one/two |
false |
yes |
Refer to https://reacttraining.com/react-router/web/api/Route/exact-bool for more details.
public void setOrder(int order)
The order of this route. This can be used to ensure that routes are returned in a certain order. The ordering of routes can matter as a route that is provided earlier takes precedence over a route provided later.
As an example, take a route with a path of "/products/create" and one with a path of "/products/:id". If "/products/create" comes after "/products/:id", then it will never be matched, because they are equal precedence and "/products/:id" will match first.
Copyright © 2021. All rights reserved.