@Override public String getName() { return argument.getName(); }
private Map<String, Argument<?>> initializeTypeParameters(Argument[] genericTypes) { Map<String, Argument<?>> typeParameters; if (genericTypes != null && genericTypes.length > 0) { typeParameters = new LinkedHashMap<>(genericTypes.length); for (Argument genericType : genericTypes) { typeParameters.put(genericType.getName(), genericType); } } else { typeParameters = Collections.emptyMap(); } return typeParameters; }
@Override protected String getFallbackFormat(Argument argument) { return NameUtils.hyphenate(argument.getName()); } }
/** * @param argument The argument * @return The fallback format */ protected String getFallbackFormat(Argument argument) { return NameUtils.hyphenate(argument.getName()); }
Map<String, Argument<?>> argumentMap = new LinkedHashMap<>(typeArguments.length); for (Argument<?> argument : typeArguments) { argumentMap.put(argument.getName(), argument);
private static String buildMessage(Argument argument, ConversionError conversionError) { return String.format("Failed to convert argument [%s] for value [%s] due to: %s", argument.getName(), conversionError.getOriginalValue().orElse(null), conversionError.getCause().getMessage()); } }
@Override protected String getFallbackFormat(Argument argument) { return NameUtils.hyphenate(NameUtils.capitalize(argument.getName()), false); } }
@Override protected String getFallbackFormat(Argument argument) { return NameUtils.hyphenate(NameUtils.capitalize(argument.getName()), false); } }
/** * Attempt to satisfy the arguments of the given route with the data from the given request. * * @param route The route * @param request The request * @param satisfyOptionals Whether to satisfy optionals * @return The route */ public RouteMatch<?> fulfillArgumentRequirements(RouteMatch<?> route, HttpRequest<?> request, boolean satisfyOptionals) { Collection<Argument> requiredArguments = route.getRequiredArguments(); Map<String, Object> argumentValues; if (requiredArguments.isEmpty()) { // no required arguments so just execute argumentValues = Collections.emptyMap(); } else { argumentValues = new LinkedHashMap<>(); // Begin try fulfilling the argument requirements for (Argument argument : requiredArguments) { getValueForArgument(argument, request, satisfyOptionals).ifPresent((value) -> argumentValues.put(argument.getName(), value)); } } route = route.fulfill(argumentValues); return route; }
private Object resolveValue(ArgumentConversionContext<T> context, ConvertibleValues<?> values, String annotationValue) { Argument<T> argument = context.getArgument(); if (StringUtils.isEmpty(annotationValue)) { annotationValue = argument.getName(); } return values.get(annotationValue, context).orElseGet(() -> conversionService.convert(argument.getAnnotationMetadata().getValue(Bindable.class, DEFAULT_VALUE_MEMBER, String.class).orElse(null), context).orElse(null) ); }
@Override public BindingResult<T> bind(ArgumentConversionContext<T> argument, HttpRequest<?> source) { ConvertibleValues<io.micronaut.http.cookie.Cookie> parameters = source.getCookies(); AnnotationMetadata annotationMetadata = argument.getAnnotationMetadata(); String parameterName = annotationMetadata.getValue(CookieValue.class, String.class) .orElse(argument.getArgument().getName()); return doBind(argument, parameters, parameterName); }
@Override public BindingResult<T> bind(ArgumentConversionContext<T> argument, HttpRequest<?> source) { ConvertibleMultiValues<String> parameters = source.getHeaders(); AnnotationMetadata annotationMetadata = argument.getAnnotationMetadata(); String parameterName = annotationMetadata.getValue(Header.class, String.class).orElse(argument.getArgument().getName()); return doBind(argument, parameters, parameterName); }
@Override public BindingResult<T> bind(ArgumentConversionContext<T> argument, HttpRequest<?> source) { MutableConvertibleValues<Object> parameters = source.getAttributes(); AnnotationMetadata annotationMetadata = argument.getAnnotationMetadata(); String parameterName = annotationMetadata.getValue(RequestAttribute.class, String.class).orElse(argument.getArgument().getName()); return doBind(argument, parameters, parameterName); }
Argument argument = method.getArguments()[i]; Object value = originalParameters[i]; parameters.put(argument.getName(), MutableArgumentValue.create(argument, value));
@Override public HttpResponse handle(HttpRequest request, UnsatisfiedRouteException exception) { if (LOG.isErrorEnabled()) { LOG.error("{} (Bad Request): {}", request, exception.getMessage()); } JsonError error = new JsonError(exception.getMessage()); error.path('/' + exception.getArgument().getName()); error.link(Link.SELF, Link.of(request.getUri())); return HttpResponse.badRequest(error); } }
String parameterName = annotationMetadata.getValue(PathVariable.class, String.class).orElse(argument.getName());
byType.put(Argument.of(Cookie.class).typeHashCode(), (RequestArgumentBinder<Cookie>) (context, source) -> { Cookies cookies = source.getCookies(); String name = context.getArgument().getName(); Cookie cookie = cookies.get(name); if (cookie == null) {
@Override public HttpResponse handle(HttpRequest request, ConversionErrorException exception) { JsonError error = new JsonError(exception.getMessage()); error.path('/' + exception.getArgument().getName()); error.link(Link.SELF, Link.of(request.getUri())); return HttpResponse.badRequest(error); } }
@Override public HttpResponse handle(HttpRequest request, UnsatisfiedArgumentException exception) { JsonError error = new JsonError(exception.getMessage()); error.path('/' + exception.getArgument().getName()); error.link(Link.SELF, Link.of(request.getUri())); return HttpResponse.badRequest(error); } }
Optional<Argument> bodyArg = Arrays.stream(context.getArguments()).filter(arg -> arg.isAnnotationPresent(Body.class)).findFirst(); if (bodyArg.isPresent()) { body = parameterValueMap.get(bodyArg.get().getName()); } else { body = parameterValueMap;