Class RequestRouter<T>
- java.lang.Object
-
- org.apache.hc.core5.http.impl.routing.RequestRouter<T>
-
- Type Parameters:
T- request handler type.
- All Implemented Interfaces:
HttpRequestMapper<T>
@Contract(threading=IMMUTABLE) public class RequestRouter<T> extends java.lang.Object implements HttpRequestMapper<T>
Request mapper that can route requests based on their properties to a specific request handler.- Since:
- 5.3
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRequestRouter.Builder<T>static classRequestRouter.Entry<T>(package private) static classRequestRouter.SingleAuthorityResolver<T>
-
Field Summary
Fields Modifier and Type Field Description private java.util.function.BiFunction<java.lang.String,URIAuthority,URIAuthority>authorityResolverprivate java.util.function.Function<URIAuthority,java.util.function.Function<java.lang.String,T>>authorityRouterprivate HttpRequestMapper<T>downstreamstatic java.util.function.BiFunction<java.lang.String,URIAuthority,URIAuthority>IGNORE_PORT_AUTHORITY_RESOLVERstatic URIAuthorityLOCAL_AUTHORITYstatic java.util.function.BiFunction<java.lang.String,URIAuthority,URIAuthority>LOCAL_AUTHORITY_RESOLVER
-
Constructor Summary
Constructors Constructor Description RequestRouter(java.util.function.Function<URIAuthority,java.util.function.Function<java.lang.String,T>> authorityRouter, java.util.function.BiFunction<java.lang.String,URIAuthority,URIAuthority> authorityResolver, HttpRequestMapper<T> downstream)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <T> RequestRouter.Builder<T>builder()static <T> RequestRouter.Builder<T>builder(UriPatternType patternType)static <T> RequestRouter<T>create(URIAuthority primaryAuthority, UriPatternType patternType, java.util.List<RequestRouter.Entry<T>> handlerEntries, java.util.function.BiFunction<java.lang.String,URIAuthority,URIAuthority> authorityResolver, HttpRequestMapper<T> downstream)(package private) static <T> java.util.function.Function<URIAuthority,T>noAuthorityResolver()Tresolve(HttpRequest request, HttpContext context)Resolves a handler matching the given request.
-
-
-
Field Detail
-
LOCAL_AUTHORITY
public static final URIAuthority LOCAL_AUTHORITY
-
LOCAL_AUTHORITY_RESOLVER
public static final java.util.function.BiFunction<java.lang.String,URIAuthority,URIAuthority> LOCAL_AUTHORITY_RESOLVER
-
IGNORE_PORT_AUTHORITY_RESOLVER
public static final java.util.function.BiFunction<java.lang.String,URIAuthority,URIAuthority> IGNORE_PORT_AUTHORITY_RESOLVER
-
authorityRouter
private final java.util.function.Function<URIAuthority,java.util.function.Function<java.lang.String,T>> authorityRouter
-
authorityResolver
private final java.util.function.BiFunction<java.lang.String,URIAuthority,URIAuthority> authorityResolver
-
downstream
private final HttpRequestMapper<T> downstream
-
-
Constructor Detail
-
RequestRouter
RequestRouter(java.util.function.Function<URIAuthority,java.util.function.Function<java.lang.String,T>> authorityRouter, java.util.function.BiFunction<java.lang.String,URIAuthority,URIAuthority> authorityResolver, HttpRequestMapper<T> downstream)
-
-
Method Detail
-
noAuthorityResolver
static final <T> java.util.function.Function<URIAuthority,T> noAuthorityResolver()
-
create
@Internal public static <T> RequestRouter<T> create(URIAuthority primaryAuthority, UriPatternType patternType, java.util.List<RequestRouter.Entry<T>> handlerEntries, java.util.function.BiFunction<java.lang.String,URIAuthority,URIAuthority> authorityResolver, HttpRequestMapper<T> downstream)
-
builder
public static <T> RequestRouter.Builder<T> builder(UriPatternType patternType)
-
builder
public static <T> RequestRouter.Builder<T> builder()
-
resolve
public T resolve(HttpRequest request, HttpContext context) throws HttpException
Description copied from interface:HttpRequestMapperResolves a handler matching the given request.- Specified by:
resolvein interfaceHttpRequestMapper<T>- Parameters:
request- the request to map to a handler- Returns:
- HTTP request handler or
nullif no match is found. - Throws:
HttpException- in case of an HTTP protocol violation.
-
-