Class ProjectedPayloadMethodArgumentResolver
java.lang.Object
org.springframework.graphql.data.method.annotation.support.ProjectedPayloadMethodArgumentResolver
- All Implemented Interfaces:
HandlerMethodArgumentResolver
public class ProjectedPayloadMethodArgumentResolver
extends Object
implements HandlerMethodArgumentResolver
Resolver to obtain an
@ProjectedPayload,
either based on the complete DataFetchingEnvironment.getArguments()
map, or based on a specific argument within the map when the method
parameter is annotated with @Argument.
Projected payloads consist of the projection interface and accessor
methods. Projections can be closed or open projections. Closed projections
use interface getter methods to access underlying properties directly.
Open projection methods make use of the @Value annotation to
evaluate SpEL expressions against the underlying target object.
For example:
@ProjectedPayload
interface BookProjection {
String getName();
}
@ProjectedPayload
interface BookProjection {
@Value("#{target.author + ' ' + target.name}")
String getAuthorAndName();
}
- Since:
- 1.0.0
- Author:
- Mark Paluch
-
Constructor Summary
ConstructorsConstructorDescriptionProjectedPayloadMethodArgumentResolver(ApplicationContext applicationContext) Create a newProjectedPayloadMethodArgumentResolverusing the given context. -
Method Summary
Modifier and TypeMethodDescriptionprotected ObjectresolveArgument(MethodParameter parameter, DataFetchingEnvironment environment) Resolve a method parameter to a value.booleansupportsParameter(MethodParameter parameter) Whether this resolver supports the givenMethodParameter.
-
Constructor Details
-
ProjectedPayloadMethodArgumentResolver
Create a newProjectedPayloadMethodArgumentResolverusing the given context.- Parameters:
applicationContext- theApplicationContextto use for bean lookup and class loading
-
-
Method Details
-
supportsParameter
Description copied from interface:HandlerMethodArgumentResolverWhether this resolver supports the givenMethodParameter.- Specified by:
supportsParameterin interfaceHandlerMethodArgumentResolver
-
resolveArgument
public Object resolveArgument(MethodParameter parameter, DataFetchingEnvironment environment) throws Exception Description copied from interface:HandlerMethodArgumentResolverResolve a method parameter to a value.- Specified by:
resolveArgumentin interfaceHandlerMethodArgumentResolver- Parameters:
parameter- the method parameter to resolve. This parameter must have previously checked viaHandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter).environment- the environment to use to resolve the value- Returns:
- the resolved value, which may be
nullif not resolved; the value may also be aMonoif it requires asynchronous resolution. - Throws:
Exception- in case of errors with the preparation of argument values
-
project
-