Add @Override annotations to main sources

Issue: SPR-10130
This commit is contained in:
Chris Beams
2012-12-28 14:00:16 +01:00
parent 9c2046c3ee
commit 3b40ce76bf
1256 changed files with 5716 additions and 0 deletions

View File

@@ -1021,6 +1021,7 @@ public class DispatcherServlet extends FrameworkServlet {
@Override
protected LocaleContext buildLocaleContext(final HttpServletRequest request) {
return new LocaleContext() {
@Override
public Locale getLocale() {
return localeResolver.resolveLocale(request);
}

View File

@@ -135,6 +135,7 @@ public final class FlashMap extends HashMap<String, Object> implements Comparabl
* path or has more target URL parameters. Before comparing FlashMap
* instances ensure that they match a given request.
*/
@Override
public int compareTo(FlashMap other) {
int thisUrlPath = (this.targetRequestPath != null) ? 1 : 0;
int otherUrlPath = (other.targetRequestPath != null) ? 1 : 0;

View File

@@ -1054,6 +1054,7 @@ public abstract class FrameworkServlet extends HttpServletBean {
*/
private class ContextRefreshListener implements ApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
FrameworkServlet.this.onApplicationEvent(event);
}

View File

@@ -189,6 +189,7 @@ public abstract class HttpServletBean extends HttpServlet
* @throws IllegalArgumentException if environment is not assignable to
* {@code ConfigurableWebEnvironment}.
*/
@Override
public void setEnvironment(Environment environment) {
Assert.isInstanceOf(ConfigurableWebEnvironment.class, environment);
this.environment = (ConfigurableWebEnvironment)environment;
@@ -199,6 +200,7 @@ public abstract class HttpServletBean extends HttpServlet
* <p>If {@code null}, a new environment will be initialized via
* {@link #createEnvironment()}.
*/
@Override
public ConfigurableWebEnvironment getEnvironment() {
if (this.environment == null) {
this.environment = this.createEnvironment();

View File

@@ -142,6 +142,7 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
private static boolean romePresent =
ClassUtils.isPresent("com.sun.syndication.feed.WireFeed", AnnotationDrivenBeanDefinitionParser.class.getClassLoader());
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
Object source = parserContext.extractSource(element);

View File

@@ -43,6 +43,7 @@ import org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler
*/
class DefaultServletHandlerBeanDefinitionParser implements BeanDefinitionParser {
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
Object source = parserContext.extractSource(element);

View File

@@ -38,6 +38,7 @@ import org.w3c.dom.Element;
*/
class InterceptorsBeanDefinitionParser implements BeanDefinitionParser {
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(), parserContext.extractSource(element));
parserContext.pushContainingComponent(compDefinition);

View File

@@ -28,6 +28,7 @@ import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
*/
public class MvcNamespaceHandler extends NamespaceHandlerSupport {
@Override
public void init() {
registerBeanDefinitionParser("annotation-driven", new AnnotationDrivenBeanDefinitionParser());
registerBeanDefinitionParser("default-servlet-handler", new DefaultServletHandlerBeanDefinitionParser());

View File

@@ -45,6 +45,7 @@ import org.springframework.web.servlet.resource.ResourceHttpRequestHandler;
*/
class ResourcesBeanDefinitionParser implements BeanDefinitionParser {
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
Object source = parserContext.extractSource(element);

View File

@@ -43,6 +43,7 @@ class ViewControllerBeanDefinitionParser implements BeanDefinitionParser {
"org.springframework.web.servlet.config.viewControllerHandlerMapping";
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
Object source = parserContext.extractSource(element);

View File

@@ -173,6 +173,7 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
* Set the {@link javax.servlet.ServletContext}, e.g. for resource handling,
* looking up file extensions, etc.
*/
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
@@ -180,6 +181,7 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
/**
* Set the Spring {@link ApplicationContext}, e.g. for resource loading.
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
@@ -432,9 +434,11 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
}
else {
validator = new Validator() {
@Override
public boolean supports(Class<?> clazz) {
return false;
}
@Override
public void validate(Object target, Errors errors) {
}
};

View File

@@ -39,6 +39,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation is empty.
*/
@Override
public void addFormatters(FormatterRegistry registry) {
}
@@ -46,6 +47,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation is empty.
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
}
@@ -53,6 +55,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation returns {@code null}
*/
@Override
public Validator getValidator() {
return null;
}
@@ -61,6 +64,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation is empty.
*/
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
}
@@ -68,6 +72,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation is empty.
*/
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
}
@@ -75,6 +80,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation is empty.
*/
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
}
@@ -82,6 +88,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation is empty.
*/
@Override
public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
}
@@ -89,6 +96,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation is empty.
*/
@Override
public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
}
@@ -96,6 +104,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation is empty.
*/
@Override
public MessageCodesResolver getMessageCodesResolver() {
return null;
}
@@ -104,6 +113,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation is empty.
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
}
@@ -111,6 +121,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation is empty.
*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {
}
@@ -118,6 +129,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation is empty.
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
}
@@ -125,6 +137,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
* {@inheritDoc}
* <p>This implementation is empty.
*/
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
}

View File

@@ -43,72 +43,84 @@ class WebMvcConfigurerComposite implements WebMvcConfigurer {
}
}
@Override
public void addFormatters(FormatterRegistry registry) {
for (WebMvcConfigurer delegate : this.delegates) {
delegate.addFormatters(registry);
}
}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
for (WebMvcConfigurer delegate : this.delegates) {
delegate.configureContentNegotiation(configurer);
}
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
for (WebMvcConfigurer delegate : this.delegates) {
delegate.configureAsyncSupport(configurer);
}
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
for (WebMvcConfigurer delegate : this.delegates) {
delegate.configureMessageConverters(converters);
}
}
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
for (WebMvcConfigurer delegate : this.delegates) {
delegate.addArgumentResolvers(argumentResolvers);
}
}
@Override
public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
for (WebMvcConfigurer delegate : this.delegates) {
delegate.addReturnValueHandlers(returnValueHandlers);
}
}
@Override
public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
for (WebMvcConfigurer delegate : this.delegates) {
delegate.configureHandlerExceptionResolvers(exceptionResolvers);
}
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
for (WebMvcConfigurer delegate : this.delegates) {
delegate.addInterceptors(registry);
}
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
for (WebMvcConfigurer delegate : this.delegates) {
delegate.addViewControllers(registry);
}
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
for (WebMvcConfigurer delegate : this.delegates) {
delegate.addResourceHandlers(registry);
}
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
for (WebMvcConfigurer delegate : this.delegates) {
delegate.configureDefaultServletHandling(configurer);
}
}
@Override
public Validator getValidator() {
List<Validator> candidates = new ArrayList<Validator>();
for (WebMvcConfigurer configurer : this.delegates) {
@@ -133,6 +145,7 @@ class WebMvcConfigurerComposite implements WebMvcConfigurer {
}
}
@Override
public MessageCodesResolver getMessageCodesResolver() {
List<MessageCodesResolver> candidates = new ArrayList<MessageCodesResolver>();
for (WebMvcConfigurer configurer : this.delegates) {

View File

@@ -64,6 +64,7 @@ public abstract class AbstractHandlerExceptionResolver implements HandlerExcepti
this.order = order;
}
@Override
public int getOrder() {
return this.order;
}
@@ -123,6 +124,7 @@ public abstract class AbstractHandlerExceptionResolver implements HandlerExcepti
* in case of "mappedHandlers" having been specified), then delegates to the
* {@link #doResolveException} template method.
*/
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response,
Object handler, Exception ex) {

View File

@@ -82,6 +82,7 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
this.order = order;
}
@Override
public final int getOrder() {
return this.order;
}
@@ -293,6 +294,7 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
* @return the corresponding handler instance, or the default handler
* @see #getHandlerInternal
*/
@Override
public final HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception {
Object handler = getHandlerInternal(request);
if (handler == null) {

View File

@@ -83,6 +83,7 @@ public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMap
/**
* Detects handler methods at initialization.
*/
@Override
public void afterPropertiesSet() {
initHandlerMethods();
}
@@ -135,6 +136,7 @@ public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMap
final Class<?> userType = ClassUtils.getUserClass(handlerType);
Set<Method> methods = HandlerMethodSelector.selectMethods(userType, new MethodFilter() {
@Override
public boolean matches(Method method) {
return getMappingForMethod(method, userType) != null;
}
@@ -352,6 +354,7 @@ public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMap
this.comparator = comparator;
}
@Override
public int compare(Match match1, Match match2) {
return this.comparator.compare(match1.mapping, match2.mapping);
}

View File

@@ -42,6 +42,7 @@ public class HandlerExceptionResolverComposite implements HandlerExceptionResolv
this.order = order;
}
@Override
public int getOrder() {
return this.order;
}
@@ -64,6 +65,7 @@ public class HandlerExceptionResolverComposite implements HandlerExceptionResolv
* Resolve the exception by iterating over the list of configured exception resolvers.
* The first one to return a ModelAndView instance wins. Otherwise {@code null} is returned.
*/
@Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response,
Object handler,

View File

@@ -34,6 +34,7 @@ public abstract class HandlerInterceptorAdapter implements AsyncHandlerIntercept
/**
* This implementation always returns {@code true}.
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
return true;
@@ -42,6 +43,7 @@ public abstract class HandlerInterceptorAdapter implements AsyncHandlerIntercept
/**
* This implementation is empty.
*/
@Override
public void postHandle(
HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
throws Exception {
@@ -50,6 +52,7 @@ public abstract class HandlerInterceptorAdapter implements AsyncHandlerIntercept
/**
* This implementation is empty.
*/
@Override
public void afterCompletion(
HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
@@ -58,6 +61,7 @@ public abstract class HandlerInterceptorAdapter implements AsyncHandlerIntercept
/**
* This implementation is empty.
*/
@Override
public void afterConcurrentHandlingStarted(
HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {

View File

@@ -53,10 +53,12 @@ import org.springframework.web.servlet.ModelAndView;
*/
public class SimpleServletHandlerAdapter implements HandlerAdapter {
@Override
public boolean supports(Object handler) {
return (handler instanceof Servlet);
}
@Override
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
@@ -64,6 +66,7 @@ public class SimpleServletHandlerAdapter implements HandlerAdapter {
return null;
}
@Override
public long getLastModified(HttpServletRequest request, Object handler) {
return -1;
}

View File

@@ -86,19 +86,23 @@ public class SimpleServletPostProcessor implements
this.useSharedServletConfig = useSharedServletConfig;
}
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
@Override
public void setServletConfig(ServletConfig servletConfig) {
this.servletConfig = servletConfig;
}
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof Servlet) {
ServletConfig config = this.servletConfig;
@@ -115,6 +119,7 @@ public class SimpleServletPostProcessor implements
return bean;
}
@Override
public void postProcessBeforeDestruction(Object bean, String beanName) throws BeansException {
if (bean instanceof Servlet) {
((Servlet) bean).destroy();
@@ -137,18 +142,22 @@ public class SimpleServletPostProcessor implements
this.servletContext = servletContext;
}
@Override
public String getServletName() {
return this.servletName;
}
@Override
public ServletContext getServletContext() {
return this.servletContext;
}
@Override
public String getInitParameter(String paramName) {
return null;
}
@Override
public Enumeration<String> getInitParameterNames() {
return Collections.enumeration(new HashSet<String>());
}

View File

@@ -49,6 +49,7 @@ public class WebRequestHandlerInterceptorAdapter implements AsyncHandlerIntercep
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
@@ -56,6 +57,7 @@ public class WebRequestHandlerInterceptorAdapter implements AsyncHandlerIntercep
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
throws Exception {
@@ -63,12 +65,14 @@ public class WebRequestHandlerInterceptorAdapter implements AsyncHandlerIntercep
(modelAndView != null && !modelAndView.wasCleared() ? modelAndView.getModelMap() : null));
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
this.requestInterceptor.afterCompletion(new DispatcherServletWebRequest(request, response), ex);
}
@Override
public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) {
if (this.requestInterceptor instanceof AsyncWebRequestInterceptor) {
AsyncWebRequestInterceptor asyncInterceptor = (AsyncWebRequestInterceptor) this.requestInterceptor;

View File

@@ -37,10 +37,12 @@ import org.springframework.web.servlet.LocaleResolver;
*/
public class AcceptHeaderLocaleResolver implements LocaleResolver {
@Override
public Locale resolveLocale(HttpServletRequest request) {
return request.getLocale();
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
throw new UnsupportedOperationException(
"Cannot change HTTP accept header - use a different locale resolution strategy");

View File

@@ -89,6 +89,7 @@ public class CookieLocaleResolver extends CookieGenerator implements LocaleResol
}
@Override
public Locale resolveLocale(HttpServletRequest request) {
// Check request for pre-parsed or preset locale.
Locale locale = (Locale) request.getAttribute(LOCALE_REQUEST_ATTRIBUTE_NAME);
@@ -112,6 +113,7 @@ public class CookieLocaleResolver extends CookieGenerator implements LocaleResol
return determineDefaultLocale(request);
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
if (locale != null) {
// Set request attribute and add cookie.

View File

@@ -52,6 +52,7 @@ public class FixedLocaleResolver extends AbstractLocaleResolver {
}
@Override
public Locale resolveLocale(HttpServletRequest request) {
Locale locale = getDefaultLocale();
if (locale == null) {
@@ -60,6 +61,7 @@ public class FixedLocaleResolver extends AbstractLocaleResolver {
return locale;
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
throw new UnsupportedOperationException(
"Cannot change fixed locale - use a different locale resolution strategy");

View File

@@ -52,6 +52,7 @@ public class SessionLocaleResolver extends AbstractLocaleResolver {
public static final String LOCALE_SESSION_ATTRIBUTE_NAME = SessionLocaleResolver.class.getName() + ".LOCALE";
@Override
public Locale resolveLocale(HttpServletRequest request) {
Locale locale = (Locale) WebUtils.getSessionAttribute(request, LOCALE_SESSION_ATTRIBUTE_NAME);
if (locale == null) {
@@ -78,6 +79,7 @@ public class SessionLocaleResolver extends AbstractLocaleResolver {
return defaultLocale;
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
WebUtils.setSessionAttribute(request, LOCALE_SESSION_ATTRIBUTE_NAME, locale);
}

View File

@@ -133,6 +133,7 @@ public abstract class AbstractController extends WebContentGenerator implements
}
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws Exception {

View File

@@ -39,10 +39,12 @@ import org.springframework.web.servlet.ModelAndView;
*/
public class HttpRequestHandlerAdapter implements HandlerAdapter {
@Override
public boolean supports(Object handler) {
return (handler instanceof HttpRequestHandler);
}
@Override
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
@@ -50,6 +52,7 @@ public class HttpRequestHandlerAdapter implements HandlerAdapter {
return null;
}
@Override
public long getLastModified(HttpServletRequest request, Object handler) {
if (handler instanceof LastModified) {
return ((LastModified) handler).getLastModified(request);

View File

@@ -101,6 +101,7 @@ public class ServletForwardingController extends AbstractController implements B
this.servletName = servletName;
}
@Override
public void setBeanName(String name) {
this.beanName = name;
if (this.servletName == null) {

View File

@@ -123,6 +123,7 @@ public class ServletWrappingController extends AbstractController
this.initParameters = initParameters;
}
@Override
public void setBeanName(String name) {
this.beanName = name;
}
@@ -132,6 +133,7 @@ public class ServletWrappingController extends AbstractController
* Initialize the wrapped Servlet instance.
* @see javax.servlet.Servlet#init(javax.servlet.ServletConfig)
*/
@Override
public void afterPropertiesSet() throws Exception {
if (this.servletClass == null) {
throw new IllegalArgumentException("servletClass is required");
@@ -165,6 +167,7 @@ public class ServletWrappingController extends AbstractController
* Destroy the wrapped Servlet instance.
* @see javax.servlet.Servlet#destroy()
*/
@Override
public void destroy() {
this.servletInstance.destroy();
}
@@ -177,18 +180,22 @@ public class ServletWrappingController extends AbstractController
*/
private class DelegatingServletConfig implements ServletConfig {
@Override
public String getServletName() {
return servletName;
}
@Override
public ServletContext getServletContext() {
return ServletWrappingController.this.getServletContext();
}
@Override
public String getInitParameter(String paramName) {
return initParameters.getProperty(paramName);
}
@Override
public Enumeration getInitParameterNames() {
return initParameters.keys();
}

View File

@@ -38,16 +38,19 @@ import org.springframework.web.servlet.ModelAndView;
*/
public class SimpleControllerHandlerAdapter implements HandlerAdapter {
@Override
public boolean supports(Object handler) {
return (handler instanceof Controller);
}
@Override
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
return ((Controller) handler).handleRequest(request, response);
}
@Override
public long getLastModified(HttpServletRequest request, Object handler) {
if (handler instanceof LastModified) {
return ((LastModified) handler).getLastModified(request);

View File

@@ -137,6 +137,7 @@ public class WebContentInterceptor extends WebContentGenerator implements Handle
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws ServletException {
@@ -189,6 +190,7 @@ public class WebContentInterceptor extends WebContentGenerator implements Handle
/**
* This implementation is empty.
*/
@Override
public void postHandle(
HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
throws Exception {
@@ -197,6 +199,7 @@ public class WebContentInterceptor extends WebContentGenerator implements Handle
/**
* This implementation is empty.
*/
@Override
public void afterCompletion(
HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {

View File

@@ -378,10 +378,12 @@ public class AnnotationMethodHandlerAdapter extends WebContentGenerator
this.order = order;
}
@Override
public int getOrder() {
return this.order;
}
@Override
public void setBeanFactory(BeanFactory beanFactory) {
if (beanFactory instanceof ConfigurableBeanFactory) {
this.beanFactory = (ConfigurableBeanFactory) beanFactory;
@@ -390,10 +392,12 @@ public class AnnotationMethodHandlerAdapter extends WebContentGenerator
}
@Override
public boolean supports(Object handler) {
return getMethodResolver(handler).hasHandlerMethods();
}
@Override
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
@@ -452,6 +456,7 @@ public class AnnotationMethodHandlerAdapter extends WebContentGenerator
* to check it, and return {@code null} if that returns {@code true}.
* @see org.springframework.web.context.request.WebRequest#checkNotModified(long)
*/
@Override
public long getLastModified(HttpServletRequest request, Object handler) {
return -1;
}
@@ -1210,6 +1215,7 @@ public class AnnotationMethodHandlerAdapter extends WebContentGenerator
this.request = new ServletServerHttpRequest(request);
}
@Override
public int compare(RequestSpecificMappingInfo info1, RequestSpecificMappingInfo info2) {
int pathComparison = pathComparator.compare(info1.bestMatchedPattern(), info2.bestMatchedPattern());
if (pathComparison != 0) {

View File

@@ -177,6 +177,7 @@ public class AnnotationMethodHandlerExceptionResolver extends AbstractHandlerExc
final Map<Class<? extends Throwable>, Method> matchedHandlers = new HashMap<Class<? extends Throwable>, Method>();
ReflectionUtils.doWithMethods(handlerType, new ReflectionUtils.MethodCallback() {
@Override
public void doWith(Method method) {
method = ClassUtils.getMostSpecificMethod(method, handlerType);
List<Class<? extends Throwable>> handledExceptions = getHandledExceptions(method);

View File

@@ -177,6 +177,7 @@ public class DefaultAnnotationHandlerMapping extends AbstractDetectingUrlHandler
handlerTypes.addAll(Arrays.asList(handlerType.getInterfaces()));
for (Class<?> currentHandlerType : handlerTypes) {
ReflectionUtils.doWithMethods(currentHandlerType, new ReflectionUtils.MethodCallback() {
@Override
public void doWith(Method method) {
RequestMapping mapping = AnnotationUtils.findAnnotation(method, RequestMapping.class);
if (mapping != null) {

View File

@@ -56,10 +56,12 @@ abstract class AbstractMediaTypeExpression implements Comparable<AbstractMediaTy
isNegated = negated;
}
@Override
public MediaType getMediaType() {
return mediaType;
}
@Override
public boolean isNegated() {
return isNegated;
}
@@ -76,6 +78,7 @@ abstract class AbstractMediaTypeExpression implements Comparable<AbstractMediaTy
protected abstract boolean matchMediaType(HttpServletRequest request) throws HttpMediaTypeException;
@Override
public int compareTo(AbstractMediaTypeExpression other) {
return MediaType.SPECIFICITY_COMPARATOR.compare(this.getMediaType(), other.getMediaType());
}

View File

@@ -49,14 +49,17 @@ abstract class AbstractNameValueExpression<T> implements NameValueExpression<T>
}
}
@Override
public String getName() {
return this.name;
}
@Override
public T getValue() {
return this.value;
}
@Override
public boolean isNegated() {
return this.isNegated;
}

View File

@@ -106,6 +106,7 @@ public class CompositeRequestCondition extends AbstractRequestCondition<Composit
* If both instances have conditions, combine the individual conditions
* after ensuring they are of the same type and number.
*/
@Override
public CompositeRequestCondition combine(CompositeRequestCondition other) {
if (isEmpty() && other.isEmpty()) {
return this;
@@ -137,6 +138,7 @@ public class CompositeRequestCondition extends AbstractRequestCondition<Composit
* resulting "matching" condition instances.
* <p>An empty {@code CompositeRequestCondition} matches to all requests.
*/
@Override
public CompositeRequestCondition getMatchingCondition(HttpServletRequest request) {
if (isEmpty()) {
return this;
@@ -155,6 +157,7 @@ public class CompositeRequestCondition extends AbstractRequestCondition<Composit
* If one instance is empty, the other "wins". If both instances have
* conditions, compare them in the order in which they were provided.
*/
@Override
public int compareTo(CompositeRequestCondition other, HttpServletRequest request) {
if (isEmpty() && other.isEmpty()) {
return 0;

View File

@@ -140,6 +140,7 @@ public final class ConsumesRequestCondition extends AbstractRequestCondition<Con
* instance otherwise. Practically that means a method-level "consumes"
* overrides a type-level "consumes" condition.
*/
@Override
public ConsumesRequestCondition combine(ConsumesRequestCondition other) {
return !other.expressions.isEmpty() ? other : this;
}
@@ -156,6 +157,7 @@ public final class ConsumesRequestCondition extends AbstractRequestCondition<Con
* or a new condition with matching expressions only;
* or {@code null} if no expressions match.
*/
@Override
public ConsumesRequestCondition getMatchingCondition(HttpServletRequest request) {
if (isEmpty()) {
return this;
@@ -182,6 +184,7 @@ public final class ConsumesRequestCondition extends AbstractRequestCondition<Con
* {@link #getMatchingCondition(HttpServletRequest)} and each instance contains
* the matching consumable media type expression only or is otherwise empty.
*/
@Override
public int compareTo(ConsumesRequestCondition other, HttpServletRequest request) {
if (this.expressions.isEmpty() && other.expressions.isEmpty()) {
return 0;

View File

@@ -91,6 +91,7 @@ public final class HeadersRequestCondition extends AbstractRequestCondition<Head
* Returns a new instance with the union of the header expressions
* from "this" and the "other" instance.
*/
@Override
public HeadersRequestCondition combine(HeadersRequestCondition other) {
Set<HeaderExpression> set = new LinkedHashSet<HeaderExpression>(this.expressions);
set.addAll(other.expressions);
@@ -101,6 +102,7 @@ public final class HeadersRequestCondition extends AbstractRequestCondition<Head
* Returns "this" instance if the request matches all expressions;
* or {@code null} otherwise.
*/
@Override
public HeadersRequestCondition getMatchingCondition(HttpServletRequest request) {
for (HeaderExpression expression : expressions) {
if (!expression.match(request)) {
@@ -122,6 +124,7 @@ public final class HeadersRequestCondition extends AbstractRequestCondition<Head
* {@link #getMatchingCondition(HttpServletRequest)} and each instance
* contains the matching header expression only or is otherwise empty.
*/
@Override
public int compareTo(HeadersRequestCondition other, HttpServletRequest request) {
return other.expressions.size() - this.expressions.size();
}

View File

@@ -82,6 +82,7 @@ public final class ParamsRequestCondition extends AbstractRequestCondition<Param
* Returns a new instance with the union of the param expressions
* from "this" and the "other" instance.
*/
@Override
public ParamsRequestCondition combine(ParamsRequestCondition other) {
Set<ParamExpression> set = new LinkedHashSet<ParamExpression>(this.expressions);
set.addAll(other.expressions);
@@ -92,6 +93,7 @@ public final class ParamsRequestCondition extends AbstractRequestCondition<Param
* Returns "this" instance if the request matches all param expressions;
* or {@code null} otherwise.
*/
@Override
public ParamsRequestCondition getMatchingCondition(HttpServletRequest request) {
for (ParamExpression expression : expressions) {
if (!expression.match(request)) {
@@ -113,6 +115,7 @@ public final class ParamsRequestCondition extends AbstractRequestCondition<Param
* {@link #getMatchingCondition(HttpServletRequest)} and each instance
* contains the matching parameter expressions only or is otherwise empty.
*/
@Override
public int compareTo(ParamsRequestCondition other, HttpServletRequest request) {
return other.expressions.size() - this.expressions.size();
}

View File

@@ -161,6 +161,7 @@ public final class PatternsRequestCondition extends AbstractRequestCondition<Pat
* <li>If neither instance has patterns, use an empty String (i.e. "").
* </ul>
*/
@Override
public PatternsRequestCondition combine(PatternsRequestCondition other) {
Set<String> result = new LinkedHashSet<String>();
if (!this.patterns.isEmpty() && !other.patterns.isEmpty()) {
@@ -202,6 +203,7 @@ public final class PatternsRequestCondition extends AbstractRequestCondition<Pat
* or a new condition with sorted matching patterns;
* or {@code null} if no patterns match.
*/
@Override
public PatternsRequestCondition getMatchingCondition(HttpServletRequest request) {
if (this.patterns.isEmpty()) {
return this;
@@ -271,6 +273,7 @@ public final class PatternsRequestCondition extends AbstractRequestCondition<Pat
* contain only patterns that match the request and are sorted with
* the best matches on top.
*/
@Override
public int compareTo(PatternsRequestCondition other, HttpServletRequest request) {
String lookupPath = this.urlPathHelper.getLookupPathForRequest(request);
Comparator<String> patternComparator = this.pathMatcher.getPatternComparator(lookupPath);

View File

@@ -159,6 +159,7 @@ public final class ProducesRequestCondition extends AbstractRequestCondition<Pro
* instance otherwise. Practically that means a method-level "produces"
* overrides a type-level "produces" condition.
*/
@Override
public ProducesRequestCondition combine(ProducesRequestCondition other) {
return !other.expressions.isEmpty() ? other : this;
}
@@ -175,6 +176,7 @@ public final class ProducesRequestCondition extends AbstractRequestCondition<Pro
* or a new condition with matching expressions;
* or {@code null} if no expressions match.
*/
@Override
public ProducesRequestCondition getMatchingCondition(HttpServletRequest request) {
if (isEmpty()) {
return this;
@@ -208,6 +210,7 @@ public final class ProducesRequestCondition extends AbstractRequestCondition<Pro
* contains the matching producible media type expression only or
* is otherwise empty.
*/
@Override
public int compareTo(ProducesRequestCondition other, HttpServletRequest request) {
try {
List<MediaType> acceptedMediaTypes = getAcceptedMediaTypes(request);

View File

@@ -71,6 +71,7 @@ public final class RequestConditionHolder extends AbstractRequestCondition<Reque
* instances after making sure the conditions are of the same type.
* Or if one holder is empty, the other holder is returned.
*/
@Override
public RequestConditionHolder combine(RequestConditionHolder other) {
if (this.condition == null && other.condition == null) {
return this;
@@ -104,6 +105,7 @@ public final class RequestConditionHolder extends AbstractRequestCondition<Reque
* new RequestConditionHolder instance. Or otherwise if this is an empty
* holder, return the same holder instance.
*/
@Override
public RequestConditionHolder getMatchingCondition(HttpServletRequest request) {
if (this.condition == null) {
return this;
@@ -117,6 +119,7 @@ public final class RequestConditionHolder extends AbstractRequestCondition<Reque
* instances after making sure the conditions are of the same type.
* Or if one holder is empty, the other holder is preferred.
*/
@Override
public int compareTo(RequestConditionHolder other, HttpServletRequest request) {
if (this.condition == null && other.condition == null) {
return 0;

View File

@@ -80,6 +80,7 @@ public final class RequestMethodsRequestCondition extends AbstractRequestConditi
* Returns a new instance with a union of the HTTP request methods
* from "this" and the "other" instance.
*/
@Override
public RequestMethodsRequestCondition combine(RequestMethodsRequestCondition other) {
Set<RequestMethod> set = new LinkedHashSet<RequestMethod>(this.methods);
set.addAll(other.methods);
@@ -94,6 +95,7 @@ public final class RequestMethodsRequestCondition extends AbstractRequestConditi
* @return the same instance if the condition is empty, a new condition with
* the matched request method, or {@code null} if no request methods match
*/
@Override
public RequestMethodsRequestCondition getMatchingCondition(HttpServletRequest request) {
if (this.methods.isEmpty()) {
return this;
@@ -130,6 +132,7 @@ public final class RequestMethodsRequestCondition extends AbstractRequestConditi
* {@link #getMatchingCondition(HttpServletRequest)} and therefore each instance
* contains the matching HTTP request method only or is otherwise empty.
*/
@Override
public int compareTo(RequestMethodsRequestCondition other, HttpServletRequest request) {
return other.methods.size() - this.methods.size();
}

View File

@@ -50,6 +50,7 @@ public abstract class AbstractHandlerMethodAdapter extends WebContentGenerator i
this.order = order;
}
@Override
public int getOrder() {
return this.order;
}
@@ -60,6 +61,7 @@ public abstract class AbstractHandlerMethodAdapter extends WebContentGenerator i
* @param handler the handler instance to check
* @return whether or not this adapter can adapt the given handler
*/
@Override
public final boolean supports(Object handler) {
return handler instanceof HandlerMethod && supportsInternal((HandlerMethod) handler);
}
@@ -75,6 +77,7 @@ public abstract class AbstractHandlerMethodAdapter extends WebContentGenerator i
/**
* {@inheritDoc} <p>This implementation expects the handler to be an {@link HandlerMethod}.
*/
@Override
public final ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
return handleInternal(request, response, (HandlerMethod) handler);
@@ -98,6 +101,7 @@ public abstract class AbstractHandlerMethodAdapter extends WebContentGenerator i
/**
* {@inheritDoc} <p>This implementation expects the handler to be an {@link HandlerMethod}.
*/
@Override
public final long getLastModified(HttpServletRequest request, Object handler) {
return getLastModifiedInternal(request, (HandlerMethod) handler);
}

View File

@@ -148,6 +148,7 @@ public final class RequestMappingInfo implements RequestCondition<RequestMapping
* <p>Example: combine type- and method-level request mappings.
* @return a new request mapping info instance; never {@code null}
*/
@Override
public RequestMappingInfo combine(RequestMappingInfo other) {
PatternsRequestCondition patterns = this.patternsCondition.combine(other.patternsCondition);
RequestMethodsRequestCondition methods = this.methodsCondition.combine(other.methodsCondition);
@@ -167,6 +168,7 @@ public final class RequestMappingInfo implements RequestCondition<RequestMapping
* the current request, sorted with best matching patterns on top.
* @return a new instance in case all conditions match; or {@code null} otherwise
*/
@Override
public RequestMappingInfo getMatchingCondition(HttpServletRequest request) {
RequestMethodsRequestCondition methods = methodsCondition.getMatchingCondition(request);
ParamsRequestCondition params = paramsCondition.getMatchingCondition(request);
@@ -197,6 +199,7 @@ public final class RequestMappingInfo implements RequestCondition<RequestMapping
* {@link #getMatchingCondition(HttpServletRequest)} to ensure they have conditions with
* content relevant to current request.
*/
@Override
public int compareTo(RequestMappingInfo other, HttpServletRequest request) {
int result = patternsCondition.compareTo(other.getPatternsCondition(), request);
if (result != 0) {

View File

@@ -74,6 +74,7 @@ public abstract class RequestMappingInfoHandlerMapping extends AbstractHandlerMe
@Override
protected Comparator<RequestMappingInfo> getMappingComparator(final HttpServletRequest request) {
return new Comparator<RequestMappingInfo>() {
@Override
public int compare(RequestMappingInfo info1, RequestMappingInfo info2) {
return info1.compareTo(info2, request);
}

View File

@@ -39,11 +39,13 @@ public class AsyncTaskMethodReturnValueHandler implements HandlerMethodReturnVal
this.beanFactory = beanFactory;
}
@Override
public boolean supportsReturnType(MethodParameter returnType) {
Class<?> paramType = returnType.getParameterType();
return WebAsyncTask.class.isAssignableFrom(paramType);
}
@Override
public void handleReturnValue(Object returnValue,
MethodParameter returnType, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest) throws Exception {

View File

@@ -32,11 +32,13 @@ import org.springframework.web.method.support.ModelAndViewContainer;
*/
public class CallableMethodReturnValueHandler implements HandlerMethodReturnValueHandler {
@Override
public boolean supportsReturnType(MethodParameter returnType) {
Class<?> paramType = returnType.getParameterType();
return Callable.class.isAssignableFrom(paramType);
}
@Override
public void handleReturnValue(Object returnValue,
MethodParameter returnType, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest) throws Exception {

View File

@@ -31,11 +31,13 @@ import org.springframework.web.method.support.ModelAndViewContainer;
*/
public class DeferredResultMethodReturnValueHandler implements HandlerMethodReturnValueHandler {
@Override
public boolean supportsReturnType(MethodParameter returnType) {
Class<?> paramType = returnType.getParameterType();
return DeferredResult.class.isAssignableFrom(paramType);
}
@Override
public void handleReturnValue(Object returnValue,
MethodParameter returnType, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest) throws Exception {

View File

@@ -205,6 +205,7 @@ public class ExceptionHandlerExceptionResolver extends AbstractHandlerMethodExce
this.contentNegotiationManager = contentNegotiationManager;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
@@ -213,6 +214,7 @@ public class ExceptionHandlerExceptionResolver extends AbstractHandlerMethodExce
return this.applicationContext;
}
@Override
public void afterPropertiesSet() {
if (this.argumentResolvers == null) {
List<HandlerMethodArgumentResolver> resolvers = getDefaultArgumentResolvers();

View File

@@ -61,16 +61,19 @@ public class HttpEntityMethodProcessor extends AbstractMessageConverterMethodPro
super(messageConverters, contentNegotiationManager);
}
@Override
public boolean supportsParameter(MethodParameter parameter) {
Class<?> parameterType = parameter.getParameterType();
return HttpEntity.class.equals(parameterType);
}
@Override
public boolean supportsReturnType(MethodParameter returnType) {
Class<?> parameterType = returnType.getParameterType();
return HttpEntity.class.equals(parameterType) || ResponseEntity.class.equals(parameterType);
}
@Override
public Object resolveArgument(
MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, WebDataBinderFactory binderFactory)
@@ -94,6 +97,7 @@ public class HttpEntityMethodProcessor extends AbstractMessageConverterMethodPro
+ " is not parameterized or has more than one parameter");
}
@Override
public void handleReturnValue(
Object returnValue, MethodParameter returnType,
ModelAndViewContainer mavContainer, NativeWebRequest webRequest)

View File

@@ -44,6 +44,7 @@ import org.springframework.web.servlet.HandlerMapping;
*/
public class MatrixVariableMapMethodArgumentResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
MatrixVariable paramAnnot = parameter.getParameterAnnotation(MatrixVariable.class);
if (paramAnnot != null) {
@@ -54,6 +55,7 @@ public class MatrixVariableMapMethodArgumentResolver implements HandlerMethodArg
return false;
}
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest request, WebDataBinderFactory binderFactory) throws Exception {

View File

@@ -47,6 +47,7 @@ public class MatrixVariableMethodArgumentResolver extends AbstractNamedValueMeth
super(null);
}
@Override
public boolean supportsParameter(MethodParameter parameter) {
if (!parameter.hasParameterAnnotation(MatrixVariable.class)) {
return false;

View File

@@ -42,10 +42,12 @@ import org.springframework.web.servlet.View;
*/
public class ModelAndViewMethodReturnValueHandler implements HandlerMethodReturnValueHandler {
@Override
public boolean supportsReturnType(MethodParameter returnType) {
return ModelAndView.class.isAssignableFrom(returnType.getParameterType());
}
@Override
public void handleReturnValue(
Object returnValue, MethodParameter returnType,
ModelAndViewContainer mavContainer, NativeWebRequest webRequest)

View File

@@ -67,10 +67,12 @@ public class ModelAndViewResolverMethodReturnValueHandler implements HandlerMeth
/**
* Always returns {@code true}. See class-level note.
*/
@Override
public boolean supportsReturnType(MethodParameter returnType) {
return true;
}
@Override
public void handleReturnValue(
Object returnValue, MethodParameter returnType,
ModelAndViewContainer mavContainer, NativeWebRequest request)

View File

@@ -42,6 +42,7 @@ import org.springframework.web.servlet.HandlerMapping;
*/
public class PathVariableMapMethodArgumentResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
PathVariable annot = parameter.getParameterAnnotation(PathVariable.class);
return ((annot != null) && (Map.class.isAssignableFrom(parameter.getParameterType()))
@@ -51,6 +52,7 @@ public class PathVariableMapMethodArgumentResolver implements HandlerMethodArgum
/**
* Return a Map with all URI template variables or an empty map.
*/
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {

View File

@@ -65,6 +65,7 @@ public class PathVariableMethodArgumentResolver extends AbstractNamedValueMethod
super(null);
}
@Override
public boolean supportsParameter(MethodParameter parameter) {
if (!parameter.hasParameterAnnotation(PathVariable.class)) {
return false;

View File

@@ -42,10 +42,12 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributesModelMap;
*/
public class RedirectAttributesMethodArgumentResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
return RedirectAttributes.class.isAssignableFrom(parameter.getParameterType());
}
@Override
public Object resolveArgument(
MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, WebDataBinderFactory binderFactory)

View File

@@ -465,6 +465,7 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter i
* <p>A {@link ConfigurableBeanFactory} is expected for resolving
* expressions in method argument default values.
*/
@Override
public void setBeanFactory(BeanFactory beanFactory) {
if (beanFactory instanceof ConfigurableBeanFactory) {
this.beanFactory = (ConfigurableBeanFactory) beanFactory;
@@ -478,6 +479,7 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter i
return this.beanFactory;
}
@Override
public void afterPropertiesSet() {
if (this.argumentResolvers == null) {
List<HandlerMethodArgumentResolver> resolvers = getDefaultArgumentResolvers();
@@ -863,6 +865,7 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter i
*/
public static final MethodFilter INIT_BINDER_METHODS = new MethodFilter() {
@Override
public boolean matches(Method method) {
return AnnotationUtils.findAnnotation(method, InitBinder.class) != null;
}
@@ -873,6 +876,7 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter i
*/
public static final MethodFilter MODEL_ATTRIBUTE_METHODS = new MethodFilter() {
@Override
public boolean matches(Method method) {
return ((AnnotationUtils.findAnnotation(method, RequestMapping.class) == null) &&
(AnnotationUtils.findAnnotation(method, ModelAttribute.class) != null));

View File

@@ -87,6 +87,7 @@ public class RequestPartMethodArgumentResolver extends AbstractMessageConverterM
* <li>Of type {@code javax.servlet.http.Part} unless annotated with {@code @RequestParam}.
* </ul>
*/
@Override
public boolean supportsParameter(MethodParameter parameter) {
if (parameter.hasParameterAnnotation(RequestPart.class)) {
return true;
@@ -107,6 +108,7 @@ public class RequestPartMethodArgumentResolver extends AbstractMessageConverterM
}
}
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest request, WebDataBinderFactory binderFactory) throws Exception {

View File

@@ -74,10 +74,12 @@ public class RequestResponseBodyMethodProcessor extends AbstractMessageConverter
super(messageConverters, contentNegotiationManager);
}
@Override
public boolean supportsParameter(MethodParameter parameter) {
return parameter.hasParameterAnnotation(RequestBody.class);
}
@Override
public boolean supportsReturnType(MethodParameter returnType) {
return returnType.getMethodAnnotation(ResponseBody.class) != null;
}
@@ -89,6 +91,7 @@ public class RequestResponseBodyMethodProcessor extends AbstractMessageConverter
* is {@code true} and there is no body content or if there is no suitable
* converter to read the content with.
*/
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
@@ -180,6 +183,7 @@ public class RequestResponseBodyMethodProcessor extends AbstractMessageConverter
return super.readWithMessageConverters(inputMessage, methodParam, paramType);
}
@Override
public void handleReturnValue(Object returnValue, MethodParameter returnType,
ModelAndViewContainer mavContainer, NativeWebRequest webRequest)
throws IOException, HttpMediaTypeNotAcceptableException {

View File

@@ -182,6 +182,7 @@ public class ServletInvocableHandlerMethod extends InvocableHandlerMethod {
return new CallableHandlerMethod(new Callable<Object>() {
@Override
public Object call() throws Exception {
if (result instanceof Exception) {
throw (Exception) result;

View File

@@ -55,6 +55,7 @@ import org.springframework.web.servlet.support.RequestContextUtils;
*/
public class ServletRequestMethodArgumentResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
Class<?> paramType = parameter.getParameterType();
return WebRequest.class.isAssignableFrom(paramType) ||
@@ -67,6 +68,7 @@ public class ServletRequestMethodArgumentResolver implements HandlerMethodArgume
Reader.class.isAssignableFrom(paramType);
}
@Override
public Object resolveArgument(
MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, WebDataBinderFactory binderFactory)

View File

@@ -44,6 +44,7 @@ import org.springframework.web.method.support.ModelAndViewContainer;
*/
public class ServletResponseMethodArgumentResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
Class<?> paramType = parameter.getParameterType();
return ServletResponse.class.isAssignableFrom(paramType)
@@ -57,6 +58,7 @@ public class ServletResponseMethodArgumentResolver implements HandlerMethodArgum
* to the response. If subsequently the underlying method returns
* {@code null}, the request is considered directly handled.
*/
@Override
public Object resolveArgument(
MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, WebDataBinderFactory binderFactory)

View File

@@ -37,10 +37,12 @@ import org.springframework.web.util.UriComponentsBuilder;
*/
public class UriComponentsBuilderMethodArgumentResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
return UriComponentsBuilder.class.isAssignableFrom(parameter.getParameterType());
}
@Override
public Object resolveArgument(
MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, WebDataBinderFactory binderFactory)

View File

@@ -40,10 +40,12 @@ import org.springframework.web.servlet.View;
*/
public class ViewMethodReturnValueHandler implements HandlerMethodReturnValueHandler {
@Override
public boolean supportsReturnType(MethodParameter returnType) {
return View.class.isAssignableFrom(returnType.getParameterType());
}
@Override
public void handleReturnValue(
Object returnValue, MethodParameter returnType,
ModelAndViewContainer mavContainer, NativeWebRequest webRequest)

View File

@@ -40,11 +40,13 @@ import org.springframework.web.servlet.RequestToViewNameTranslator;
*/
public class ViewNameMethodReturnValueHandler implements HandlerMethodReturnValueHandler {
@Override
public boolean supportsReturnType(MethodParameter returnType) {
Class<?> paramType = returnType.getParameterType();
return (void.class.equals(paramType) || String.class.equals(paramType));
}
@Override
public void handleReturnValue(
Object returnValue, MethodParameter returnType,
ModelAndViewContainer mavContainer, NativeWebRequest webRequest)

View File

@@ -85,6 +85,7 @@ public abstract class AbstractUrlMethodNameResolver implements MethodNameResolve
* Converts {@code null} values to NoSuchRequestHandlingMethodExceptions.
* @see #getHandlerMethodNameForUrlPath
*/
@Override
public final String getHandlerMethodName(HttpServletRequest request)
throws NoSuchRequestHandlingMethodException {

View File

@@ -364,6 +364,7 @@ public class MultiActionController extends AbstractController implements LastMod
* Return -1 if there's no such handler, indicating that content must be updated.
* @see org.springframework.web.servlet.mvc.LastModified#getLastModified(HttpServletRequest)
*/
@Override
public long getLastModified(HttpServletRequest request) {
try {
String handlerMethodName = this.methodNameResolver.getHandlerMethodName(request);

View File

@@ -157,6 +157,7 @@ public class ParameterMethodNameResolver implements MethodNameResolver {
}
@Override
public String getHandlerMethodName(HttpServletRequest request) throws NoSuchRequestHandlingMethodException {
String methodName = null;

View File

@@ -72,6 +72,7 @@ public class PropertiesMethodNameResolver extends AbstractUrlMethodNameResolver
this.pathMatcher = pathMatcher;
}
@Override
public void afterPropertiesSet() {
if (this.mappings == null || this.mappings.isEmpty()) {
throw new IllegalArgumentException("'mappings' property is required");

View File

@@ -59,12 +59,16 @@ import org.springframework.web.servlet.FlashMap;
*/
public interface RedirectAttributes extends Model {
@Override
RedirectAttributes addAttribute(String attributeName, Object attributeValue);
@Override
RedirectAttributes addAttribute(Object attributeValue);
@Override
RedirectAttributes addAllAttributes(Collection<?> attributeValues);
@Override
RedirectAttributes mergeAttributes(Map<String, ?> attributes);
/**

View File

@@ -57,6 +57,7 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr
/**
* Return the attributes candidate for flash storage or an empty Map.
*/
@Override
public Map<String, ?> getFlashAttributes() {
return this.flashAttributes;
}
@@ -65,6 +66,7 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr
* {@inheritDoc}
* <p>Formats the attribute value as a String before adding it.
*/
@Override
public RedirectAttributesModelMap addAttribute(String attributeName, Object attributeValue) {
super.addAttribute(attributeName, formatValue(attributeValue));
return this;
@@ -81,6 +83,7 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr
* {@inheritDoc}
* <p>Formats the attribute value as a String before adding it.
*/
@Override
public RedirectAttributesModelMap addAttribute(Object attributeValue) {
super.addAttribute(attributeValue);
return this;
@@ -90,6 +93,7 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr
* {@inheritDoc}
* <p>Each attribute value is formatted as a String before being added.
*/
@Override
public RedirectAttributesModelMap addAllAttributes(Collection<?> attributeValues) {
super.addAllAttributes(attributeValues);
return this;
@@ -99,6 +103,7 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr
* {@inheritDoc}
* <p>Each attribute value is formatted as a String before being added.
*/
@Override
public RedirectAttributesModelMap addAllAttributes(Map<String, ?> attributes) {
if (attributes != null) {
for (String key : attributes.keySet()) {
@@ -112,6 +117,7 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr
* {@inheritDoc}
* <p>Each attribute value is formatted as a String before being merged.
*/
@Override
public RedirectAttributesModelMap mergeAttributes(Map<String, ?> attributes) {
if (attributes != null) {
for (String key : attributes.keySet()) {
@@ -123,6 +129,7 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr
return this;
}
@Override
public Map<String, Object> asMap() {
return this;
}
@@ -149,11 +156,13 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr
}
}
@Override
public RedirectAttributes addFlashAttribute(String attributeName, Object attributeValue) {
this.flashAttributes.addAttribute(attributeName, attributeValue);
return this;
}
@Override
public RedirectAttributes addFlashAttribute(Object attributeValue) {
this.flashAttributes.addAttribute(attributeValue);
return this;

View File

@@ -83,6 +83,7 @@ public class DefaultServletHttpRequestHandler implements HttpRequestHandler, Ser
* attempts to locate the default Servlet using the known common
* container-specific names.
*/
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
if (!StringUtils.hasText(this.defaultServletName)) {
@@ -109,6 +110,7 @@ public class DefaultServletHttpRequestHandler implements HttpRequestHandler, Ser
}
@Override
public void handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

View File

@@ -88,6 +88,7 @@ public class ResourceHttpRequestHandler extends WebContentGenerator implements H
this.locations = locations;
}
@Override
public void afterPropertiesSet() throws Exception {
Assert.notEmpty(locations, "Locations list must not be empty");
}
@@ -104,6 +105,7 @@ public class ResourceHttpRequestHandler extends WebContentGenerator implements H
* of the resource will be written to the response with caching headers
* set to expire one year in the future.
*/
@Override
public void handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

View File

@@ -82,6 +82,7 @@ public abstract class AbstractFlashMapManager implements FlashMapManager {
return this.urlPathHelper;
}
@Override
public final FlashMap retrieveAndUpdate(HttpServletRequest request, HttpServletResponse response) {
List<FlashMap> maps = retrieveFlashMaps(request);
@@ -178,6 +179,7 @@ public abstract class AbstractFlashMapManager implements FlashMapManager {
return true;
}
@Override
public final void saveOutputFlashMap(FlashMap flashMap, HttpServletRequest request, HttpServletResponse response) {
if (CollectionUtils.isEmpty(flashMap)) {
return;

View File

@@ -40,6 +40,7 @@ public class SessionFlashMapManager extends AbstractFlashMapManager{
* FlashMap matching the current request is found or there are expired
* FlashMap to be removed.
*/
@Override
@SuppressWarnings("unchecked")
protected List<FlashMap> retrieveFlashMaps(HttpServletRequest request) {
HttpSession session = request.getSession(false);
@@ -49,6 +50,7 @@ public class SessionFlashMapManager extends AbstractFlashMapManager{
/**
* Save the given FlashMap instance, if not empty, in the HTTP session.
*/
@Override
protected void updateFlashMaps(List<FlashMap> flashMaps, HttpServletRequest request, HttpServletResponse response) {
request.getSession().setAttribute(FLASH_MAPS_SESSION_ATTRIBUTE, flashMaps);
}

View File

@@ -171,6 +171,7 @@ public class BindTag extends HtmlEscapingAwareTag implements EditorAwareTag {
return this.status.getErrors();
}
@Override
public final PropertyEditor getEditor() {
return this.status.getEditor();
}

View File

@@ -67,10 +67,12 @@ public class EscapeBodyTag extends HtmlEscapingAwareTag implements BodyTag {
return EVAL_BODY_BUFFERED;
}
@Override
public void doInitBody() {
// do nothing
}
@Override
public void setBodyContent(BodyContent bodyContent) {
this.bodyContent = bodyContent;
}

View File

@@ -165,15 +165,18 @@ public class EvalTag extends HtmlEscapingAwareTag {
this.variableResolver = pageContext.getVariableResolver();
}
@Override
public Class<?>[] getSpecificTargetClasses() {
return null;
}
@Override
public boolean canRead(EvaluationContext context, Object target, String name) throws AccessException {
return (target == null &&
(resolveImplicitVariable(name) != null || this.pageContext.findAttribute(name) != null));
}
@Override
public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException {
Object implicitVar = resolveImplicitVariable(name);
if (implicitVar != null) {
@@ -182,10 +185,12 @@ public class EvalTag extends HtmlEscapingAwareTag {
return new TypedValue(this.pageContext.findAttribute(name));
}
@Override
public boolean canWrite(EvaluationContext context, Object target, String name) {
return false;
}
@Override
public void write(EvaluationContext context, Object target, String name, Object newValue) {
throw new UnsupportedOperationException();
}

View File

@@ -111,10 +111,12 @@ public class NestedPathTag extends TagSupport implements TryCatchFinally {
return EVAL_PAGE;
}
@Override
public void doCatch(Throwable throwable) throws Throwable {
throw throwable;
}
@Override
public void doFinally() {
this.previousNestedPath = null;
}

View File

@@ -110,10 +110,12 @@ public abstract class RequestContextAwareTag extends TagSupport implements TryCa
protected abstract int doStartTagInternal() throws Exception;
@Override
public void doCatch(Throwable throwable) throws Throwable {
throw throwable;
}
@Override
public void doFinally() {
this.requestContext = null;
}

View File

@@ -157,6 +157,7 @@ public class UrlTag extends HtmlEscapingAwareTag implements ParamAware {
ExpressionEvaluationUtils.evaluateBoolean("javaScriptEscape", javaScriptEscape, pageContext);
}
@Override
public void addParam(Param param) {
this.params.add(param);
}

View File

@@ -219,6 +219,7 @@ public abstract class AbstractDataBoundFormElementTag extends AbstractFormTag im
* Exposes the {@link PropertyEditor} for {@link EditorAwareTag}.
* <p>Use {@link #getPropertyEditor()} for internal rendering purposes.
*/
@Override
public final PropertyEditor getEditor() throws JspException {
return getPropertyEditor();
}

View File

@@ -149,10 +149,12 @@ public abstract class AbstractHtmlElementBodyTag extends AbstractHtmlElementTag
// BodyTag implementation
//---------------------------------------------------------------------
@Override
public void doInitBody() throws JspException {
// no op
}
@Override
public void setBodyContent(BodyContent bodyContent) {
this.bodyContent = bodyContent;
}

View File

@@ -394,6 +394,7 @@ public abstract class AbstractHtmlElementTag extends AbstractDataBoundFormElemen
/**
* {@inheritDoc}
*/
@Override
public void setDynamicAttribute(String uri, String localName, Object value ) throws JspException {
if (this.dynamicAttributes == null) {
this.dynamicAttributes = new HashMap<String, Object>();

View File

@@ -46,6 +46,7 @@ public class ButtonTag extends AbstractHtmlElementTag {
/**
* Set the value of the '{@code name}' attribute.
*/
@Override
public String getName() {
return name;
}

View File

@@ -216,6 +216,7 @@ public class SelectTag extends AbstractHtmlInputElementTag {
ObjectUtils.getDisplayString(evaluate("itemLabel", getItemLabel())) : null);
OptionWriter optionWriter =
new OptionWriter(itemsObject, getBindStatus(), valueProperty, labelProperty, isHtmlEscape()) {
@Override
protected String processOptionValue(String resolvedValue) {
return processFieldValue(selectName, resolvedValue, "option");
}

View File

@@ -76,6 +76,7 @@ public class CookieThemeResolver extends CookieGenerator implements ThemeResolve
}
@Override
public String resolveThemeName(HttpServletRequest request) {
// Check request for preparsed or preset theme.
String theme = (String) request.getAttribute(THEME_REQUEST_ATTRIBUTE_NAME);
@@ -93,6 +94,7 @@ public class CookieThemeResolver extends CookieGenerator implements ThemeResolve
return getDefaultThemeName();
}
@Override
public void setThemeName(HttpServletRequest request, HttpServletResponse response, String themeName) {
if (themeName != null) {
// Set request attribute and add cookie.

View File

@@ -33,10 +33,12 @@ import javax.servlet.http.HttpServletResponse;
*/
public class FixedThemeResolver extends AbstractThemeResolver {
@Override
public String resolveThemeName(HttpServletRequest request) {
return getDefaultThemeName();
}
@Override
public void setThemeName(HttpServletRequest request, HttpServletResponse response, String themeName) {
throw new UnsupportedOperationException("Cannot change theme - use a different theme resolution strategy");
}

View File

@@ -46,12 +46,14 @@ public class SessionThemeResolver extends AbstractThemeResolver {
*/
public static final String THEME_SESSION_ATTRIBUTE_NAME = SessionThemeResolver.class.getName() + ".THEME";
@Override
public String resolveThemeName(HttpServletRequest request) {
String theme = (String) WebUtils.getSessionAttribute(request, THEME_SESSION_ATTRIBUTE_NAME);
// specific theme, or fallback to default?
return (theme != null ? theme : getDefaultThemeName());
}
@Override
public void setThemeName(HttpServletRequest request, HttpServletResponse response, String themeName) {
WebUtils.setSessionAttribute(request, THEME_SESSION_ATTRIBUTE_NAME, themeName);
}

View File

@@ -116,6 +116,7 @@ public abstract class AbstractCachingViewResolver extends WebApplicationObjectSu
}
@Override
public View resolveViewName(String viewName, Locale locale) throws Exception {
if (!isCache()) {
return createView(viewName, locale);

View File

@@ -62,6 +62,7 @@ public abstract class AbstractUrlBasedView extends AbstractView implements Initi
return this.url;
}
@Override
public void afterPropertiesSet() throws Exception {
if (isUrlRequired() && getUrl() == null) {
throw new IllegalArgumentException("Property 'url' is required");

View File

@@ -79,6 +79,7 @@ public abstract class AbstractView extends WebApplicationObjectSupport implement
* Set the view's name. Helpful for traceability.
* <p>Framework code must call this when constructing views.
*/
@Override
public void setBeanName(String beanName) {
this.beanName = beanName;
}
@@ -104,6 +105,7 @@ public abstract class AbstractView extends WebApplicationObjectSupport implement
/**
* Return the content type for this view.
*/
@Override
public String getContentType() {
return this.contentType;
}
@@ -252,6 +254,7 @@ public abstract class AbstractView extends WebApplicationObjectSupport implement
* Delegates to renderMergedOutputModel for the actual rendering.
* @see #renderMergedOutputModel
*/
@Override
public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
if (logger.isTraceEnabled()) {
logger.trace("Rendering view with name '" + this.beanName + "' with model " + model +

View File

@@ -61,11 +61,13 @@ public class BeanNameViewResolver extends WebApplicationObjectSupport implements
this.order = order;
}
@Override
public int getOrder() {
return order;
}
@Override
public View resolveViewName(String viewName, Locale locale) throws BeansException {
ApplicationContext context = getApplicationContext();
if (!context.containsBean(viewName)) {

View File

@@ -111,6 +111,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
this.order = order;
}
@Override
public int getOrder() {
return this.order;
}
@@ -272,6 +273,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
this.cnManagerFactoryBean.setServletContext(servletContext);
}
@Override
public void afterPropertiesSet() throws Exception {
if (this.contentNegotiationManager == null) {
this.cnManagerFactoryBean.afterPropertiesSet();
@@ -279,6 +281,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
}
}
@Override
public View resolveViewName(String viewName, Locale locale) throws Exception {
RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
Assert.isInstanceOf(ServletRequestAttributes.class, attrs);
@@ -413,10 +416,12 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
private static final View NOT_ACCEPTABLE_VIEW = new View() {
@Override
public String getContentType() {
return null;
}
@Override
public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) {
response.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE);
}

View File

@@ -171,6 +171,7 @@ public class DefaultRequestToViewNameTranslator implements RequestToViewNameTran
* @see org.springframework.web.util.UrlPathHelper#getLookupPathForRequest
* @see #transformPath
*/
@Override
public String getViewName(HttpServletRequest request) {
String lookupPath = this.urlPathHelper.getLookupPathForRequest(request);
return (this.prefix + transformPath(lookupPath) + this.suffix);

View File

@@ -238,6 +238,7 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView {
/**
* Returns "true" indicating this view performs a redirect.
*/
@Override
public boolean isRedirectView() {
return true;
}

View File

@@ -91,6 +91,7 @@ public class ResourceBundleViewResolver extends AbstractCachingViewResolver
this.order = order;
}
@Override
public int getOrder() {
return this.order;
}
@@ -180,6 +181,7 @@ public class ResourceBundleViewResolver extends AbstractCachingViewResolver
* Eagerly initialize Locales if necessary.
* @see #setLocalesToInitialize
*/
@Override
public void afterPropertiesSet() throws BeansException {
if (this.localesToInitialize != null) {
for (Locale locale : this.localesToInitialize) {
@@ -275,6 +277,7 @@ public class ResourceBundleViewResolver extends AbstractCachingViewResolver
/**
* Close the bundle View factories on context shutdown.
*/
@Override
public void destroy() throws BeansException {
for (ConfigurableApplicationContext factory : this.bundleCache.values()) {
factory.close();

Some files were not shown because too many files have changed in this diff Show More