@Override public void accept(Visitor visitor) { this.routerFunction.accept(visitor); }
@Override public void accept(Visitor visitor) { visitor.startNested(this.predicate); this.routerFunction.accept(visitor); visitor.endNested(this.predicate); } }
@Test public void nested() { HandlerFunction<ServerResponse> handler = new SimpleHandlerFunction(); RouterFunction<ServerResponse> routerFunction = route() .path("/foo", builder -> { builder.path("/bar", () -> route() .GET("/baz", handler) .build()); }) .build(); ToStringVisitor visitor = new ToStringVisitor(); routerFunction.accept(visitor); String result = visitor.toString(); String expected = "/foo => {\n" + " /bar => {\n" + " (GET && /baz) -> \n" + " }\n" + "}"; assertEquals(expected, result); }
@Override public List<DispatcherHandlerMappingDescription> describe( RouterFunctionMapping handlerMapping) { MappingDescriptionVisitor visitor = new MappingDescriptionVisitor(); RouterFunction<?> routerFunction = handlerMapping.getRouterFunction(); if (routerFunction != null) { routerFunction.accept(visitor); } return visitor.descriptions; }