1
2
3
4
5
6
7
8
9
10
11 package org.mule.module.ws.config.spring.parsers.specific;
12
13 import org.mule.config.spring.parsers.processors.CheckExclusiveAttributes;
14 import org.mule.config.spring.parsers.processors.CheckExclusiveAttributesAndChildren;
15 import org.mule.config.spring.parsers.specific.AbstractFlowConstructDefinitionParser;
16 import org.mule.module.ws.config.spring.factories.WSProxyFactoryBean;
17 import org.w3c.dom.Element;
18
19 public class WSProxyDefinitionParser extends AbstractFlowConstructDefinitionParser
20 {
21 private static final String WSDL_FILE_ATTRIBUTE = "wsdlFile";
22 private static final String WSDL_LOCATION_ATTRIBUTE = "wsdlLocation";
23
24 public WSProxyDefinitionParser()
25 {
26 super.registerPreProcessor(new CheckExclusiveAttributes(new String[][]{
27 new String[]{INBOUND_ADDRESS_ATTRIBUTE}, new String[]{INBOUND_ENDPOINT_REF_ATTRIBUTE}}));
28
29 super.registerPreProcessor(new CheckExclusiveAttributes(new String[][]{
30 new String[]{OUTBOUND_ADDRESS_ATTRIBUTE}, new String[]{OUTBOUND_ENDPOINT_REF_ATTRIBUTE}}));
31
32 super.registerPreProcessor(new CheckExclusiveAttributes(new String[][]{
33 new String[]{WSDL_LOCATION_ATTRIBUTE}, new String[]{WSDL_FILE_ATTRIBUTE}}));
34
35 super.registerPreProcessor(new CheckExclusiveAttributesAndChildren(new String[]{
36 INBOUND_ENDPOINT_REF_ATTRIBUTE, INBOUND_ADDRESS_ATTRIBUTE}, new String[]{INBOUND_ENDPOINT_CHILD}));
37
38 super.registerPreProcessor(new CheckExclusiveAttributesAndChildren(new String[]{
39 OUTBOUND_ENDPOINT_REF_ATTRIBUTE, OUTBOUND_ADDRESS_ATTRIBUTE, TRANSFORMER_REFS_ATTRIBUTE,
40 RESPONSE_TRANSFORMER_REFS_ATTRIBUTE}, new String[]{OUTBOUND_ENDPOINT_CHILD}));
41 }
42
43 @Override
44 protected Class<?> getBeanClass(Element element)
45 {
46 return WSProxyFactoryBean.class;
47 }
48 }