Class ComponentRoute
- java.lang.Object
-
- com.broadleafcommerce.metadata.route.ComponentRoute
-
- All Implemented Interfaces:
Serializable
,org.springframework.core.Ordered
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
usingcomponentId
, or this route can be tied to a non-metadata named component usingcomponentName
.// 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();
- Author:
- Nick Crum (ncrum)
- See Also:
for the java method of providing routes
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ComponentRoute.ComponentRouteBuilder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ComponentRoute.ComponentRouteBuilder
builder()
String
getComponentId()
TheComponent.id(java.lang.String)
of theComponent
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()
APredicate
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)
TheComponent.id(java.lang.String)
of theComponent
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)
APredicate
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 givenWebRequest
.
-
-
-
Method Detail
-
test
public boolean test(org.springframework.web.context.request.WebRequest request)
Evaluates the predicate on the givenWebRequest
.- Parameters:
request
- the web request- Returns:
- whether or not this route is a match for the web request
-
builder
public static ComponentRoute.ComponentRouteBuilder builder()
-
getPath
public String getPath()
The path for this route in the admin application, e.g. "/products".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.
-
getComponentId
public String getComponentId()
TheComponent.id(java.lang.String)
of theComponent
that will be rendered for this route.
-
getComponentName
public String getComponentName()
The name of the component that will be rendered for this route. This can be used as an alternative to usingcomponentId
for non-metadata-driven components like "not found" views. This should not be used ifcomponentId
is provided.
-
getScopes
public List<String> getScopes()
The scopes that the user must have at least one with "READ" access for this route to render. If none are provided, it will be assumed the user has access.
-
isExact
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.
-
getOrder
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.
- Specified by:
getOrder
in interfaceorg.springframework.core.Ordered
-
getPredicate
public Predicate<org.springframework.web.context.request.WebRequest> getPredicate()
APredicate
for this route. This will be used to evaluate whether or not this route should be returned for a givenWebRequest
.
-
setPath
public void setPath(String path)
The path for this route in the admin application, e.g. "/products".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.
-
setComponentId
public void setComponentId(String componentId)
TheComponent.id(java.lang.String)
of theComponent
that will be rendered for this route.
-
setComponentName
public void setComponentName(String componentName)
The name of the component that will be rendered for this route. This can be used as an alternative to usingcomponentId
for non-metadata-driven components like "not found" views. This should not be used ifcomponentId
is provided.
-
setScopes
public void setScopes(List<String> scopes)
The scopes that the user must have at least one with "READ" access for this route to render. If none are provided, it will be assumed the user has access.
-
setExact
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.
-
setOrder
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.
-
-