Package

com.twitter.util

routing

Permalink

package routing

Visibility
  1. Public
  2. All

Type Members

  1. abstract class AbstractRouter[Input, Route] extends Router[Input, Route]

    Permalink

    Java-friendly version of Router

    Java-friendly version of Router

    Input

    The Input type used to determine a route destination

    Route

    The output/resulting route type

  2. case class ClosedRouterException(router: Router[_, _]) extends RuntimeException with NoStackTrace with Product with Serializable

    Permalink

    Exception thrown when an attempt to route an Input to a Router where close() has been initiated on the Router.

    Exception thrown when an attempt to route an Input to a Router where close() has been initiated on the Router.

    router

    The Router where close() has already been initiated.

  3. case class RouteValidationException(msg: String, cause: Throwable) extends Exception with Product with Serializable

    Permalink

    Exception thrown when a RouterBuilder encounters a Route that is not valid for the Router type it is building.

  4. trait Router[Input, Route] extends (Input) ⇒ Option[Route] with ClosableOnce

    Permalink

    A generic interface for routing an input to an optional matching route.

    A generic interface for routing an input to an optional matching route.

    Input

    The Input type used when determining a route destination

    Route

    The resulting route type. A Route may have dynamic properties and may be found to satisfy multiple Input instances. As there may not be a 1-to-1 mapping of Input to Route, it is encouraged that a Route encapsulates its relationship to an Input. An example to consider would be an HTTP Router. An HTTP request contains a Method (i.e. GET, POST) and a URI. A Router for a REST API may match "GET /users/{id}" for multiple HTTP requests (i.e. "GET /users/123" AND "GET /users/456" would map to the same destination Route). As a result, the Route in this example should be aware of the method, path, and and the destination/logic responsible for handling an Input that matches. Another property to consider for a Route is "uniqueness". It may or may not be desirable for a Router to contain multiple routes that correspond to the same Input.

    Note

    A Router should be considered immutable unless explicitly noted.

  5. abstract class RouterBuilder[Input, Route, RouterType <: Router[Input, Route]] extends AnyRef

    Permalink

    Contract for a Router builder.

    Contract for a Router builder. The resulting RouterType should be considered immutable, unless the RouterType implementation explicitly states otherwise.

    Input

    The Router's Input type.

    Route

    The Router's destination Route type. It is recommended that the Route is a self-contained/self-describing type for the purpose of validation via the routeValidator. Put differently, the Route should know of the Input that maps to itself.

    RouterType

    The type of Router to build.

Value Members

  1. object Router

    Permalink

Ungrouped