org.springframework.web.method.support.AsyncHandlerMethodReturnValueHandler Maven / Gradle / Ivy
/*
* Copyright 2002-2015 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.web.method.support;
import org.springframework.core.MethodParameter;
/**
* A return value handler that supports async types. Such return value types
* need to be handled with priority so the async value can be "unwrapped".
*
* Note: implementing this contract is not required but it
* should be implemented when the handler needs to be prioritized ahead of others.
* For example custom (async) handlers, by default ordered after built-in
* handlers, should take precedence over {@code @ResponseBody} or
* {@code @ModelAttribute} handling, which should occur once the async value is
* ready.
*
* @author Rossen Stoyanchev
* @since 4.2
*/
public interface AsyncHandlerMethodReturnValueHandler extends HandlerMethodReturnValueHandler {
/**
* Whether the given return value represents asynchronous computation.
* @param returnValue the return value
* @param returnType the return type
* @return {@code true} if the return value is asynchronous.
*/
boolean isAsyncReturnValue(Object returnValue, MethodParameter returnType);
}