@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; } }