Java-friendly version of Router
Exception thrown when an attempt to route an Input
to a Router where close() has been
initiated on the Router.
Functional alias for creating a router given a label and all of the defined routes for the router to be generated.
A generic interface for routing an input to an optional matching route.
A generic interface for routing an input to an optional matching route.
The Input type used when determining a route destination
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.
A Router should be considered immutable unless explicitly noted.
Utility for building and creating routers.
Utility for building and creating routers. The resulting router should be considered immutable, unless the router's implementation explicitly states otherwise.
The router's Input
type.
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 validator. Put differently, the Route
should know of the
Input
that maps to itself.
The type of Router to build.
Container class for an error that is encountered as part of validating routes via a RouteBuilder.
Container class for an error that is encountered as part of validating routes via a RouteBuilder.
The message that explains the error.
Exception thrown when a RouterBuilder observes any routes that are not valid for the Router type it is building.
Functional alias for determining whether all defined results are valid for a specific router type.
Java-friendly version of Router
The Input type used to determine a route destination
The output/resulting route type