All Downloads are FREE. Search and download functionalities are using the official Maven repository.

public.javadoc.org.spincast.plugins.routing.RouteBuilderDefault.html Maven / Gradle / Ivy

There is a newer version: 2.2.0
Show newest version






RouteBuilderDefault (org.spincast:spincast-framework 1.0.0 API)












org.spincast.plugins.routing

Class RouteBuilderDefault<R extends RequestContext<?>,W extends WebsocketContext<?>>

    • Field Detail

      • logger

        protected final org.slf4j.Logger logger
    • Method Detail

      • getRouter

        protected Router<R,W> getRouter()
      • getId

        public String getId()
      • isSpicastCoreRouteOrPluginRoute

        public boolean isSpicastCoreRouteOrPluginRoute()
      • getPath

        public String getPath()
      • getPosition

        public int getPosition()
      • isSkipResources

        public boolean isSkipResources()
      • getBeforeFilters

        public List<Handler<R>> getBeforeFilters()
      • getAfterFilters

        public List<Handler<R>> getAfterFilters()
      • getMainHandler

        public Handler<R> getMainHandler()
      • getAcceptedContentTypes

        public Set<String> getAcceptedContentTypes()
      • getFilterIdsToSkip

        public Set<String> getFilterIdsToSkip()
      • spicastCoreRouteOrPluginRoute

        public RouteBuilder<R> spicastCoreRouteOrPluginRoute()
        Description copied from interface: RouteBuilder
        This should only by called by *plugins*.

        When this method is called, the resulting route won't be remove by default when the Router.removeAllRoutes() method is used. The Router.removeAllRoutes(boolean) with true will have to be called to actually remove it.

        This is useful during development, when an hotreload mecanism is used to reload the Router without restarting the application, when the application routes changed. By default only the routes for which the #isSpicastCoreRouteOrPluginRoute() method has been called would then be reloaded.

        Specified by:
        spicastCoreRouteOrPluginRoute in interface RouteBuilder<R extends RequestContext<?>>
      • pos

        public RouteBuilder<R> pos(int position)
        Description copied from interface: RouteBuilder
        The position of the handler.

        If "0", the handler is considered as the *main* handler. Only one main handler per request is run (the first one found)! The main handler is usually where the body of the response is created.

        A route with a position less than "0" is considered as a "before" filter and will be run before the main handler. A route with a position greater than "0" is considered as an "after" filter and will be run after the main handler. All the matching before and after filters are run, from the lower position to the higher. If two filters have the same position, they will be run in order they have been added to the router.

        Be especially careful with after filters since the response may have been flushed at that time. For example, after filters are run if a RedirectException is thrown, but the response will then be closed!

        If not specified, "0" is used.

        Specified by:
        pos in interface RouteBuilder<R extends RequestContext<?>>
      • before

        public RouteBuilder<R> before(Handler<R> beforeFilter)
        Description copied from interface: RouteBuilder
        Adds a "before" filter which will only be applied to this particular route. If more than one filter is added, they will be run in order they have been added.
        Specified by:
        before in interface RouteBuilder<R extends RequestContext<?>>
      • after

        public RouteBuilder<R> after(Handler<R> afterFilter)
        Description copied from interface: RouteBuilder
        Adds an "after" filter which will only be applied to this particular route. If more than one filter is added, they will be run in order they have been added.
        Specified by:
        after in interface RouteBuilder<R extends RequestContext<?>>
      • acceptAsString

        public RouteBuilder<R> acceptAsString(String... acceptedContentTypes)
        Description copied from interface: RouteBuilder
        Sets the accepted Content-Types. This route will only be considered for requests specifying those Content-Types as being accepted (using the Accept header).
        Specified by:
        acceptAsString in interface RouteBuilder<R extends RequestContext<?>>
      • acceptAsString

        public RouteBuilder<R> acceptAsString(Set<String> acceptedContentTypes)
        Description copied from interface: RouteBuilder
        Sets the accepted Content-Types. This route will only be considered for requests specifying those Content-Types as being accepted (using the Accept header).
        Specified by:
        acceptAsString in interface RouteBuilder<R extends RequestContext<?>>
      • GET

        public RouteBuilder<R> GET()
        Description copied from interface: RouteBuilder
        Addss GET as a supported HTTP method. If you started the creation of the route from an Router object, you already specified some supported HTTP methods. This one will simply be added.
        Specified by:
        GET in interface RouteBuilder<R extends RequestContext<?>>
      • POST

        public RouteBuilder<R> POST()
        Description copied from interface: RouteBuilder
        Adds POST as a supported HTTP method. If you started the creation of the route from an Router object, you already specified some supported HTTP methods. This one will simply be added.
        Specified by:
        POST in interface RouteBuilder<R extends RequestContext<?>>
      • PUT

        public RouteBuilder<R> PUT()
        Description copied from interface: RouteBuilder
        Adds PUT as a supported HTTP method. If you started the creation of the route from an Router object, you already specified some supported HTTP methods. This one will simply be added.
        Specified by:
        PUT in interface RouteBuilder<R extends RequestContext<?>>
      • DELETE

        public RouteBuilder<R> DELETE()
        Description copied from interface: RouteBuilder
        Adds DELETE as a supported HTTP method. If you started the creation of the route from an Router object, you already specified some supported HTTP methods. This one will simply be added.
        Specified by:
        DELETE in interface RouteBuilder<R extends RequestContext<?>>
      • OPTIONS

        public RouteBuilder<R> OPTIONS()
        Description copied from interface: RouteBuilder
        Adds OPTIONS as a supported HTTP method. If you started the creation of the route from an Router object, you already specified some supported HTTP methods. This one will simply be added.
        Specified by:
        OPTIONS in interface RouteBuilder<R extends RequestContext<?>>
      • TRACE

        public RouteBuilder<R> TRACE()
        Description copied from interface: RouteBuilder
        Adds TRACE as a supported HTTP method. If you started the creation of the route from an Router object, you already specified some supported HTTP methods. This one will simply be added.
        Specified by:
        TRACE in interface RouteBuilder<R extends RequestContext<?>>
      • HEAD

        public RouteBuilder<R> HEAD()
        Description copied from interface: RouteBuilder
        Adds HEAD as a supported HTTP method. If you started the creation of the route from an Router object, you already specified some supported HTTP methods. This one will simply be added.
        Specified by:
        HEAD in interface RouteBuilder<R extends RequestContext<?>>
      • PATCH

        public RouteBuilder<R> PATCH()
        Description copied from interface: RouteBuilder
        Adds PATCH as a supported HTTP method. If you started the creation of the route from an Router object, you already specified some supported HTTP methods. This one will simply be added.
        Specified by:
        PATCH in interface RouteBuilder<R extends RequestContext<?>>
      • ALL

        public RouteBuilder<R> ALL()
        Description copied from interface: RouteBuilder
        Adds all HTTP methods as being supported. If you started the creation of the route from an Router object, you already specified some supported HTTP methods. By calling this method, all methods will now be suported.
        Specified by:
        ALL in interface RouteBuilder<R extends RequestContext<?>>
      • methods

        public RouteBuilder<R> methods(Set<HttpMethod> httpMethods)
        Description copied from interface: RouteBuilder
        Adds the specified HTTP methods as being supported. If you started the creation of the route from an Router object, you already specified some supported HTTP methods. Those new ones will simply be added.
        Specified by:
        methods in interface RouteBuilder<R extends RequestContext<?>>
      • methods

        public RouteBuilder<R> methods(HttpMethod... httpMethods)
        Description copied from interface: RouteBuilder
        Adds the specified HTTP methods as being supported. If you started the creation of the route from an Router object, you already specified some supported HTTP methods. Those new ones will simply be added.
        Specified by:
        methods in interface RouteBuilder<R extends RequestContext<?>>
      • handle

        public void handle(Handler<R> mainHandler)
        Description copied from interface: RouteBuilder
        Creates the route and saves it to the router. If the creation of the route was not started using an Router object, an exception will be thrown.
        Specified by:
        handle in interface RouteBuilder<R extends RequestContext<?>>
      • create

        public Route<R> create(Handler<R> mainHandler)
        Description copied from interface: RouteBuilder
        Creates and returns the route without adding it to the router. NOTE : use save(...) instead to save the route to the router at the end of the build process!
        Specified by:
        create in interface RouteBuilder<R extends RequestContext<?>>
      • cache

        public RouteBuilder<R> cache(int seconds)
        Description copied from interface: RouteBuilder
        Adds public cache headers.
        Specified by:
        cache in interface RouteBuilder<R extends RequestContext<?>>
        Parameters:
        seconds - The number of seconds the resource associated with this route should be cached.
      • cache

        public RouteBuilder<R> cache(int seconds,
                                     boolean isPrivate)
        Description copied from interface: RouteBuilder
        Adds cache headers.
        Specified by:
        cache in interface RouteBuilder<R extends RequestContext<?>>
        Parameters:
        seconds - The number of seconds the resource associated with this route should be cached.
        isPrivate - should the cache be private? (help)
      • cache

        public RouteBuilder<R> cache(int seconds,
                                     boolean isPrivate,
                                     Integer secondsCdn)
        Description copied from interface: RouteBuilder
        Adds cache headers.
        Specified by:
        cache in interface RouteBuilder<R extends RequestContext<?>>
        Parameters:
        seconds - The number of seconds the resource associated with this route should be cached.
        isPrivate - should the cache be private? (help)
        secondsCdn - The number of seconds the resource associated with this route should be cached by a CDN/proxy. If null, it won't be used.
      • getCacheSecondsByDefault

        protected int getCacheSecondsByDefault()
      • isCachePrivateByDefault

        protected boolean isCachePrivateByDefault()
      • getCacheCdnSecondsByDefault

        protected Integer getCacheCdnSecondsByDefault()
      • skip

        public RouteBuilder<R> skip(String filterId)
        Description copied from interface: RouteBuilder
        Skip a "before" and "after" filter for this route.

        This is useful when you set a global filter but want to skip it one a specific route only.

        Specified by:
        skip in interface RouteBuilder<R extends RequestContext<?>>

Copyright © 2019. All rights reserved.





© 2015 - 2024 Weber Informatics LLC | Privacy Policy