@Override public String getReverseRoute( Class<?> controllerClass, String controllerMethodName, Optional<Map<String, Object>> parameterMap) { try { ReverseRouter.Builder reverseRouteBuilder = new ReverseRouter(ninjaProperties, this) .with(controllerClass, controllerMethodName); if (parameterMap.isPresent()) { // pathOrQueryParams are not escaped with the deprecated method of creating // reverse routes. use ReverseRouter! parameterMap.get().forEach((name, value) -> { // path or query param? if (reverseRouteBuilder.getRoute().getParameters().containsKey(name)) { reverseRouteBuilder.rawPathParam(name, value); } else { reverseRouteBuilder.rawQueryParam(name, value); } }); } return reverseRouteBuilder.build(); } catch (IllegalArgumentException e) { logger.error("Unable to cleanly build reverse route", e); return null; } }
@Override public String toString() { return this.build(); } }
/** * Builds the result as a <code>ninja.Result</code> redirect. * @return A Ninja redirect result */ public Result redirect() { return Results.redirect(build()); }