Class AbstractApiContextArgumentResolver<A extends Annotation, C>
java.lang.Object
com.bluebell.greenhouse.planter.resolvers.request.AbstractApiContextArgumentResolver<A,C>
- Type Parameters:
A- resolution annotation typeC- resolved context type
- All Implemented Interfaces:
ApiContextArgumentResolver, org.springframework.web.method.support.HandlerMethodArgumentResolver
- Direct Known Subclasses:
AccountArgumentResolver, AccountDeletionArgumentResolver, AccountPortfolioArgumentResolver, AuthenticatedUserRefArgumentResolver, PortfolioArgumentResolver, PositionArgumentResolver, PositionOrderArgumentResolver, PositionTransactionArgumentResolver, RecurringNotificationArgumentResolver, TransactionArgumentResolver, WatchlistArgumentResolver, WatchlistItemArgumentResolver
public abstract class AbstractApiContextArgumentResolver<A extends Annotation, C>
extends Object
implements ApiContextArgumentResolver
Supplies the shared mechanics for typed API request-context argument resolvers.
- Version:
- 3.0.5
- Author:
- Stephen Prizio
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractApiContextArgumentResolver(Class<A> annotationType, Class<C> contextType) Creates a typed resolver. -
Method Summary
Modifier and TypeMethodDescriptionprotected final AgetAnnotation(org.springframework.core.MethodParameter parameter) Returns the resolution annotation from a supported controller parameter.protected static jakarta.servlet.http.HttpServletRequestgetHttpServletRequest(org.springframework.web.context.request.NativeWebRequest webRequest) Returns the servlet request wrapped by the native web request.protected final <T> TreadParameter(ApiQueryParameterDefinition definition, org.springframework.core.MethodParameter parameter, org.springframework.web.context.request.NativeWebRequest webRequest, Class<T> targetType) Reads a typed query parameter.protected static ApiQueryParameterDefinitionrequiredParameter(String name, ApiQueryParameterType type) Creates a required query-parameter definition.final CresolveArgument(@NonNull org.springframework.core.MethodParameter parameter, @Nullable org.springframework.web.method.support.ModelAndViewContainer modelAndViewContainer, @NonNull org.springframework.web.context.request.NativeWebRequest webRequest, @Nullable org.springframework.web.bind.support.WebDataBinderFactory webDataBinderFactory) protected abstract CresolveContext(org.springframework.core.MethodParameter parameter, org.springframework.web.context.request.NativeWebRequest webRequest) Resolves the domain-specific request context.final booleansupportsParameter(org.springframework.core.MethodParameter parameter) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ApiContextArgumentResolver
getParameterDefinitions
-
Constructor Details
-
AbstractApiContextArgumentResolver
-
-
Method Details
-
supportsParameter
public final boolean supportsParameter(org.springframework.core.MethodParameter parameter) - Specified by:
supportsParameterin interfaceorg.springframework.web.method.support.HandlerMethodArgumentResolver
-
resolveArgument
public final C resolveArgument(@NonNull org.springframework.core.MethodParameter parameter, @Nullable org.springframework.web.method.support.ModelAndViewContainer modelAndViewContainer, @NonNull org.springframework.web.context.request.NativeWebRequest webRequest, @Nullable org.springframework.web.bind.support.WebDataBinderFactory webDataBinderFactory) throws Exception - Specified by:
resolveArgumentin interfaceorg.springframework.web.method.support.HandlerMethodArgumentResolver- Throws:
Exception
-
resolveContext
protected abstract C resolveContext(org.springframework.core.MethodParameter parameter, org.springframework.web.context.request.NativeWebRequest webRequest) throws Exception Resolves the domain-specific request context.- Parameters:
parameter-MethodParameterwebRequest-NativeWebRequest- Returns:
- resolved
C - Throws:
Exception- when request parameters cannot be read
-
requiredParameter
protected static ApiQueryParameterDefinition requiredParameter(String name, ApiQueryParameterType type) Creates a required query-parameter definition.- Parameters:
name- query-parameter nametype-ApiQueryParameterType- Returns:
ApiQueryParameterDefinition
-
getAnnotation
Returns the resolution annotation from a supported controller parameter.- Parameters:
parameter-MethodParameter- Returns:
- resolution annotation
A
-
readParameter
protected final <T> T readParameter(ApiQueryParameterDefinition definition, org.springframework.core.MethodParameter parameter, org.springframework.web.context.request.NativeWebRequest webRequest, Class<T> targetType) throws org.springframework.web.bind.MissingServletRequestParameterException Reads a typed query parameter.- Type Parameters:
T- converted value type- Parameters:
definition-ApiQueryParameterDefinitionparameter-MethodParameterwebRequest-NativeWebRequesttargetType-Classof the converted value- Returns:
- converted value
T - Throws:
org.springframework.web.bind.MissingServletRequestParameterException- when a required parameter is absent
-
getHttpServletRequest
protected static jakarta.servlet.http.HttpServletRequest getHttpServletRequest(org.springframework.web.context.request.NativeWebRequest webRequest) Returns the servlet request wrapped by the native web request.- Parameters:
webRequest-NativeWebRequest- Returns:
HttpServletRequest
-