1 package org.springframework.ws.config.annotation;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.springframework.ws.server.EndpointInterceptor;
7 import org.springframework.ws.server.endpoint.adapter.method.MethodArgumentResolver;
8 import org.springframework.ws.server.endpoint.adapter.method.MethodReturnValueHandler;
9
10 /**
11  * An {@link WsConfigurer} implementation that delegates to other {@link WsConfigurer} instances.
12  *
13  * @author Arjen Poutsma
14  * @since 2.2
15  */

16 public class WsConfigurerComposite implements WsConfigurer {
17
18     private List<WsConfigurer> delegates = new ArrayList<WsConfigurer>();
19
20     public void addWsConfigurers(List<WsConfigurer> configurers) {
21         if (configurers != null) {
22             this.delegates.addAll(configurers);
23         }
24     }
25
26     @Override
27     public void addInterceptors(List<EndpointInterceptor> interceptors) {
28         for (WsConfigurer delegate : delegates) {
29             delegate.addInterceptors(interceptors);
30         }
31     }
32
33     @Override
34     public void addArgumentResolvers(List<MethodArgumentResolver> argumentResolvers) {
35         for (WsConfigurer delegate : delegates) {
36             delegate.addArgumentResolvers(argumentResolvers);
37         }
38     }
39
40     @Override
41     public void addReturnValueHandlers(
42             List<MethodReturnValueHandler> returnValueHandlers) {
43         for (WsConfigurer delegate : delegates) {
44             delegate.addReturnValueHandlers(returnValueHandlers);
45         }
46     }
47
48 }
49