Top Description Inners Fields Constructors Methods
org.springframework.web.service.invoker

public abstract Class AbstractNamedValueArgumentResolver

extends Object
implements HttpServiceArgumentResolver
Class Inheritance
All Implemented Interfaces
org.springframework.web.service.invoker.HttpServiceArgumentResolver
Known Direct Subclasses
org.springframework.web.service.invoker.CookieValueArgumentResolver, org.springframework.web.service.invoker.PathVariableArgumentResolver, org.springframework.web.service.invoker.RequestAttributeArgumentResolver, org.springframework.web.service.invoker.RequestHeaderArgumentResolver, org.springframework.web.service.invoker.RequestParamArgumentResolver, org.springframework.web.service.invoker.RequestPartArgumentResolver
Imports
java.util.Arrays, .Collection, .Collections, .Map, .Optional, java.util.concurrent.ConcurrentHashMap, org.apache.commons.logging.Log, .LogFactory, org.springframework.core.MethodParameter, org.springframework.core.convert.ConversionService, .TypeDescriptor, org.springframework.lang.Nullable, org.springframework.util.Assert, .ObjectUtils, org.springframework.web.bind.annotation.ValueConstants

Base class for arguments that resolve to a named request value such as a request header, path variable, cookie, and others.
Author
Rossen Stoyanchev
Since
6.0

Nested and Inner Type Summary

Modifier and TypeClass and Description
protected static class
AbstractNamedValueArgumentResolver.NamedValueInfo

Info about a request value, typically extracted from a method parameter annotation.

Field Summary

Modifier and TypeField and Description
private final ConversionService
protected final Log
private final Map<MethodParameter, AbstractNamedValueArgumentResolver.NamedValueInfo>
private static final TypeDescriptor

Constructor Summary

AccessConstructor and Description
protected
AbstractNamedValueArgumentResolver(ConversionService
the ConversionService to use to format Object to String values
conversionService
)

Constructor for a resolver to a String value.

protected
AbstractNamedValueArgumentResolver()

Constructor for a resolver to an Object value, without conversion.

Method Summary

Modifier and TypeMethod and Description
protected abstract void
addRequestValue(String
the request value name
name
,
Object
the value
value
,
MethodParameter
the method parameter type, nested if Map, List/array, or Optional
parameter
,
HttpRequestValues.Builder
builder to add the request value to
requestValues
)

Add the given, single request value.

private void
addSingleOrMultipleValues(String name, Object value, boolean required, Object defaultValue, String valueLabel, boolean supportsMultiValues, MethodParameter parameter, HttpRequestValues.Builder requestValues)

private void
addSingleValue(String name, Object value, boolean required, Object defaultValue, String valueLabel, MethodParameter parameter, HttpRequestValues.Builder requestValues)

protected abstract AbstractNamedValueArgumentResolver.NamedValueInfo
createNamedValueInfo(MethodParameter parameter)

Return information about the request value, or null if the parameter does not represent a request value of interest.

private AbstractNamedValueArgumentResolver.NamedValueInfo
public boolean
resolve(Object
the argument value
argument
,
MethodParameter
the method parameter for the argument
parameter
,
HttpRequestValues.Builder
builder to add HTTP request values to
requestValues
)

Implements org.springframework.web.service.invoker.HttpServiceArgumentResolver.resolve.

Resolve the argument value.
private AbstractNamedValueArgumentResolver.NamedValueInfo
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

conversionServiceback to summary
private final ConversionService conversionService
Annotations
@Nullable
loggerback to summary
protected final Log logger
namedValueInfoCacheback to summary
private final Map<MethodParameter, AbstractNamedValueArgumentResolver.NamedValueInfo> namedValueInfoCache
STRING_TARGET_TYPEback to summary
private static final TypeDescriptor STRING_TARGET_TYPE

Constructor Detail

AbstractNamedValueArgumentResolverback to summary
protected AbstractNamedValueArgumentResolver(ConversionService conversionService)

Constructor for a resolver to a String value.

Parameters
conversionService:ConversionService

the ConversionService to use to format Object to String values

AbstractNamedValueArgumentResolverback to summary
protected AbstractNamedValueArgumentResolver()

Constructor for a resolver to an Object value, without conversion.

Method Detail

addRequestValueback to summary
protected abstract void addRequestValue(String name, Object value, MethodParameter parameter, HttpRequestValues.Builder requestValues)

Add the given, single request value. This may be called multiples times if the request value is multivalued.

If the resolver was created with a ConversionService, the value will have been converted to a String and may be cast down.

Parameters
name:String

the request value name

value:Object

the value

parameter:MethodParameter

the method parameter type, nested if Map, List/array, or Optional

requestValues:HttpRequestValues.Builder

builder to add the request value to

addSingleOrMultipleValuesback to summary
private void addSingleOrMultipleValues(String name, Object value, boolean required, Object defaultValue, String valueLabel, boolean supportsMultiValues, MethodParameter parameter, HttpRequestValues.Builder requestValues)
addSingleValueback to summary
private void addSingleValue(String name, Object value, boolean required, Object defaultValue, String valueLabel, MethodParameter parameter, HttpRequestValues.Builder requestValues)
createNamedValueInfoback to summary
protected abstract AbstractNamedValueArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)

Return information about the request value, or null if the parameter does not represent a request value of interest.

Annotations
@Nullable
getNamedValueInfoback to summary
private AbstractNamedValueArgumentResolver.NamedValueInfo getNamedValueInfo(MethodParameter parameter)
Annotations
@Nullable
resolveback to summary
public boolean resolve(Object argument, MethodParameter parameter, HttpRequestValues.Builder requestValues)

Implements org.springframework.web.service.invoker.HttpServiceArgumentResolver.resolve.

Doc from org.springframework.web.service.invoker.HttpServiceArgumentResolver.resolve.

Resolve the argument value.

Parameters
argument:Object

the argument value

parameter:MethodParameter

the method parameter for the argument

requestValues:HttpRequestValues.Builder

builder to add HTTP request values to

Returns:boolean

true if the argument was resolved, false otherwise

Annotations
@SuppressWarnings:unchecked
@Override
updateNamedValueInfoback to summary
private AbstractNamedValueArgumentResolver.NamedValueInfo updateNamedValueInfo(MethodParameter parameter, AbstractNamedValueArgumentResolver.NamedValueInfo info)
org.springframework.web.service.invoker back to summary

protected Class AbstractNamedValueArgumentResolver.NamedValueInfo

extends Object
Class Inheritance
  • java.lang.Object
  • org.springframework.web.service.invoker.AbstractNamedValueArgumentResolver.NamedValueInfo

Info about a request value, typically extracted from a method parameter annotation.

Field Summary

Modifier and TypeField and Description
private final String
private final String
private final boolean
private final String
private final boolean

Constructor Summary

AccessConstructor and Description
public
NamedValueInfo(String
the name to use, possibly empty if not specified
name
,
boolean
whether it is marked as required
required
,
String
fallback value, possibly ValueConstants#DEFAULT_NONE
defaultValue
,
String
how it should appear in error messages, e.g. "path variable", "request header"
label
,
boolean multiValued)

Create an instance.

Method Summary

Modifier and TypeMethod and Description
public AbstractNamedValueArgumentResolver.NamedValueInfo
update(String name, boolean required, String defaultValue)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

defaultValueback to summary
private final String defaultValue
Annotations
@Nullable
labelback to summary
private final String label
multiValuedback to summary
private final boolean multiValued
nameback to summary
private final String name
requiredback to summary
private final boolean required

Constructor Detail

NamedValueInfoback to summary
public NamedValueInfo(String name, boolean required, String defaultValue, String label, boolean multiValued)

Create an instance.

Parameters
name:String

the name to use, possibly empty if not specified

required:boolean

whether it is marked as required

defaultValue:String

fallback value, possibly ValueConstants#DEFAULT_NONE

label:String

how it should appear in error messages, e.g. "path variable", "request header"

Method Detail

updateback to summary
public AbstractNamedValueArgumentResolver.NamedValueInfo update(String name, boolean required, String defaultValue)