@Override public String getMessage() { return "Missing cookie '" + this.cookieName + "' for method parameter of type " + this.parameter.getNestedParameterType().getSimpleName(); }
@Override public String getMessage() { return "Missing matrix variable '" + this.variableName + "' for method parameter of type " + this.parameter.getNestedParameterType().getSimpleName(); }
@Override public String getMessage() { return "Missing URI template variable '" + this.variableName + "' for method parameter of type " + this.parameter.getNestedParameterType().getSimpleName(); }
/** * Invoked when a named value is required, but {@link #resolveName(String, MethodParameter, NativeWebRequest)} * returned {@code null} and there is no default value. Subclasses typically throw an exception in this case. * @param name the name for the value * @param parameter the method parameter */ protected void handleMissingValue(String name, MethodParameter parameter) throws ServletException { throw new ServletRequestBindingException("Missing argument '" + name + "' for method parameter of type " + parameter.getNestedParameterType().getSimpleName()); }
@Override protected void handleMissingValue(String name, MethodParameter parameter) throws ServletException { throw new ServletRequestBindingException("Missing request attribute '" + name + "' of type " + parameter.getNestedParameterType().getSimpleName()); }
@Override protected void handleMissingValue(String name, MethodParameter parameter) { String type = parameter.getNestedParameterType().getSimpleName(); String reason = "Missing session attribute '" + name + "' of type " + type; throw new ServerWebInputException(reason, parameter); }
@Override protected void handleMissingValue(String name, MethodParameter parameter) throws ServletException { throw new ServletRequestBindingException("Missing session attribute '" + name + "' of type " + parameter.getNestedParameterType().getSimpleName()); }
@Override protected void handleMissingValue(String name, MethodParameter parameter) throws ServerWebInputException { String paramInfo = parameter.getNestedParameterType().getSimpleName(); throw new ServerWebInputException("Missing matrix variable '" + name + "' " + "for method parameter of type " + paramInfo, parameter); }
@Override protected void handleMissingValue(String name, MethodParameter parameter) { String type = parameter.getNestedParameterType().getSimpleName(); String reason = "Missing request attribute '" + name + "' of type " + type; throw new ServerWebInputException(reason, parameter); }
@Override protected void handleMissingValue(String name, MethodParameter parameter) { String type = parameter.getNestedParameterType().getSimpleName(); throw new ServerWebInputException("Missing request header '" + name + "' " + "for method parameter of type " + type, parameter); }
@Override protected void handleMissingValue(String name, MethodParameter parameter, ServerWebExchange exchange) { String type = parameter.getNestedParameterType().getSimpleName(); String reason = "Required " + type + " parameter '" + name + "' is not present"; throw new ServerWebInputException(reason, parameter); }
private String getPartName(MethodParameter methodParam, @Nullable RequestPart requestPart) { String partName = (requestPart != null ? requestPart.name() : ""); if (partName.isEmpty()) { partName = methodParam.getParameterName(); if (partName == null) { throw new IllegalArgumentException("Request part name for argument type [" + methodParam.getNestedParameterType().getName() + "] not specified, and parameter name information not found in class file either."); } } return partName; }
private String getPartName(MethodParameter methodParam, @Nullable RequestPart requestPart) { String partName = (requestPart != null ? requestPart.name() : ""); if (partName.isEmpty()) { partName = methodParam.getParameterName(); if (partName == null) { throw new IllegalArgumentException("Request part name for argument type [" + methodParam.getNestedParameterType().getName() + "] not specified, and parameter name information not found in class file either."); } } return partName; }
@Override public boolean supportsParameter(MethodParameter parameter) { return (parameter.hasParameterAnnotation(RequestHeader.class) && !Map.class.isAssignableFrom(parameter.nestedIfOptional().getNestedParameterType())); }
@Override public boolean supportsParameter(MethodParameter parameter) { if (!parameter.hasParameterAnnotation(MatrixVariable.class)) { return false; } if (Map.class.isAssignableFrom(parameter.nestedIfOptional().getNestedParameterType())) { MatrixVariable matrixVariable = parameter.getParameterAnnotation(MatrixVariable.class); return (matrixVariable != null && StringUtils.hasText(matrixVariable.name())); } return true; }
@Override protected Object resolveNamedValue(String name, MethodParameter parameter, ServerWebExchange exchange) { HttpCookie cookie = exchange.getRequest().getCookies().getFirst(name); Class<?> paramType = parameter.getNestedParameterType(); if (HttpCookie.class.isAssignableFrom(paramType)) { return cookie; } return (cookie != null ? cookie.getValue() : null); }
@Override public void contributeMethodArgument(MethodParameter parameter, Object value, UriComponentsBuilder builder, Map<String, Object> uriVariables, ConversionService conversionService) { if (Map.class.isAssignableFrom(parameter.nestedIfOptional().getNestedParameterType())) { return; } PathVariable ann = parameter.getParameterAnnotation(PathVariable.class); String name = (ann != null && !StringUtils.isEmpty(ann.value()) ? ann.value() : parameter.getParameterName()); String formatted = formatUriValue(conversionService, new TypeDescriptor(parameter.nestedIfOptional()), value); uriVariables.put(name, formatted); }
@Override public boolean supportsParameter(MethodParameter param) { if (checkAnnotatedParamNoReactiveWrapper(param, RequestParam.class, this::singleParam)) { return true; } else if (this.useDefaultResolution) { return checkParameterTypeNoReactiveWrapper(param, BeanUtils::isSimpleProperty) || BeanUtils.isSimpleProperty(param.nestedIfOptional().getNestedParameterType()); } return false; }
public static boolean isMultipartArgument(MethodParameter parameter) { Class<?> paramType = parameter.getNestedParameterType(); return (MultipartFile.class == paramType || isMultipartFileCollection(parameter) || isMultipartFileArray(parameter) || (Part.class == paramType || isPartCollection(parameter) || isPartArray(parameter))); }
/** * Create a new type descriptor from a {@link MethodParameter}. * <p>Use this constructor when a source or target conversion point is a * constructor parameter, method parameter, or method return value. * @param methodParameter the method parameter */ public TypeDescriptor(MethodParameter methodParameter) { this.resolvableType = ResolvableType.forMethodParameter(methodParameter); this.type = this.resolvableType.resolve(methodParameter.getNestedParameterType()); this.annotatedElement = new AnnotatedElementAdapter(methodParameter.getParameterIndex() == -1 ? methodParameter.getMethodAnnotations() : methodParameter.getParameterAnnotations()); }