/* * Copyright (c) 2015. Bearchoke */ package com.bearchoke.platform.server.common.web.argumentresolver; import com.bearchoke.platform.server.common.web.interceptor.Location; import com.bearchoke.platform.server.common.web.interceptor.UserLocationHandlerInterceptor; import org.springframework.core.MethodParameter; import org.springframework.web.bind.support.WebDataBinderFactory; import org.springframework.web.context.request.NativeWebRequest; import org.springframework.web.context.request.WebRequest; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.ModelAndViewContainer; /** * Created by Bjorn Harvold * Date: 10/12/14 * Time: 1:31 PM * Responsibility: */ public class LocationHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver { @Override public boolean supportsParameter(MethodParameter parameter) { return Location.class.isAssignableFrom(parameter.getParameterType()); } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer modelAndViewContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { return webRequest.getAttribute(UserLocationHandlerInterceptor.USER_LOCATION_ATTRIBUTE, WebRequest.SCOPE_REQUEST); } }