Class 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 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();
     
     
    Author:
    Nick Crum (ncrum)
    See Also:
    for the java method of providing routes, Serialized Form
    • Constructor Detail

      • ComponentRoute

        public ComponentRoute​(String path,
                              String componentId,
                              String componentName,
                              List<String> scopes,
                              boolean exact,
                              int order,
                              Predicate<org.springframework.web.context.request.WebRequest> predicate)
    • Method Detail

      • test

        public boolean test​(org.springframework.web.context.request.WebRequest request)
        Evaluates the predicate on the given WebRequest.
        Parameters:
        request - the web request
        Returns:
        whether or not this route is a match for the web request
      • 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.

      • getComponentName

        public String getComponentName()
        The name of the component that will be rendered for this route. This can be used as an alternative to using componentId for non-metadata-driven components like "not found" views. This should not be used if componentId 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 interface org.springframework.core.Ordered
      • getPredicate

        public Predicate<org.springframework.web.context.request.WebRequest> getPredicate()
        A Predicate for this route. This will be used to evaluate whether or not this route should be returned for a given WebRequest.
      • 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.

      • 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 using componentId for non-metadata-driven components like "not found" views. This should not be used if componentId 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.

      • setPredicate

        public void setPredicate​(Predicate<org.springframework.web.context.request.WebRequest> predicate)
        A Predicate for this route. This will be used to evaluate whether or not this route should be returned for a given WebRequest.