package org.springframework.ws.config.annotation;
import java.util.List;
import org.springframework.ws.server.EndpointInterceptor;
import org.springframework.ws.server.endpoint.adapter.method.MethodArgumentResolver;
import org.springframework.ws.server.endpoint.adapter.method.MethodReturnValueHandler;
/**
* Defines callback methods to customize the Java-based configuration for
* Spring Web Services enabled via {@link EnableWs @EnableWs}.
*
* <p>{@code @EnableWs}-annotated configuration classes may implement
* this interface to be called back and given a chance to customize the
* default configuration. Consider extending {@link WsConfigurerAdapter},
* which provides a stub implementation of all interface methods.
*
* @author Arjen Poutsma
* @since 2.2
*/
public interface WsConfigurer {
/**
* Add {@link EndpointInterceptor}s for pre- and post-processing of
* endpoint method invocations.
*/
void addInterceptors(List<EndpointInterceptor> interceptors);
/**
* Add resolvers to support custom endpoint method argument types.
* @param argumentResolvers initially an empty list
*/
void addArgumentResolvers(List<MethodArgumentResolver> argumentResolvers);
/**
* Add handlers to support custom controller method return value types.
* <p>Using this option does not override the built-in support for handling
* return values. To customize the built-in support for handling return
* values, configure RequestMappingHandlerAdapter directly.
* @param returnValueHandlers initially an empty list
*/
void addReturnValueHandlers(List<MethodReturnValueHandler> returnValueHandlers);
}