View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.config.spring.parsers.specific.endpoint;
8   
9   import org.mule.config.spring.parsers.specific.endpoint.support.AddressedEndpointDefinitionParser;
10  import org.mule.config.spring.parsers.specific.endpoint.support.OrphanEndpointDefinitionParser;
11  import org.mule.endpoint.EndpointURIEndpointBuilder;
12  import org.mule.endpoint.URIBuilder;
13  
14  /**
15   * A parser for global endpoints.  Note that the blocking of "ref" is left to the schema.
16   */
17  public class TransportGlobalEndpointDefinitionParser extends AddressedEndpointDefinitionParser
18  {
19  
20      public TransportGlobalEndpointDefinitionParser(String protocol, String[] requiredAddressAttributes)
21      {
22          this(protocol, PROTOCOL, requiredAddressAttributes);
23      }
24  
25      public TransportGlobalEndpointDefinitionParser(String metaOrProtocol, boolean isMeta, String[] requiredAddressAttributes)
26      {
27          this(metaOrProtocol, isMeta, requiredAddressAttributes, new String[]{});
28      }
29  
30      /**
31       * @param metaOrProtocol The transport metaOrProtocol ("tcp" etc)
32       * @param isMeta Whether transport is "meta" or not (eg cxf)
33       * @param requiredAddressAttributes A list of attribute names that are required if "address"
34       * isn't present
35       * @param requiredProperties A list of property names that are required if "address" isn't present
36       */
37      public TransportGlobalEndpointDefinitionParser(String metaOrProtocol, boolean isMeta,
38                                                     String[] requiredAddressAttributes, String[] requiredProperties)
39      {
40          super(metaOrProtocol, isMeta, new OrphanEndpointDefinitionParser(EndpointURIEndpointBuilder.class),
41                  requiredAddressAttributes, requiredProperties);
42      }
43  
44      /**
45       * @param metaOrProtocol The transport metaOrProtocol ("tcp" etc)
46       * @param isMeta Whether transport is "meta" or not (eg cxf)
47       * @param requiredAddressAttributes A list of attribute names that are required if "address"
48       * isn't present
49       * @param requiredProperties A list of property names that are required if "address" isn't present
50       */
51      public TransportGlobalEndpointDefinitionParser(String metaOrProtocol, boolean isMeta, Class clazz,
52                                                     String[] requiredAddressAttributes, String[] requiredProperties)
53      {
54          super(metaOrProtocol, isMeta, new OrphanEndpointDefinitionParser(clazz),
55                  requiredAddressAttributes, requiredProperties);
56      }
57  
58      public TransportGlobalEndpointDefinitionParser(String metaOrProtocol, boolean isMeta,
59                                                     String[] endpointAttributes,
60                                                     String[][] requiredAddressAttributes,
61                                                     String[][] requiredProperties)
62      {
63          this(metaOrProtocol, isMeta, URIBuilder.ALL_ATTRIBUTES,
64                  endpointAttributes, requiredAddressAttributes, requiredProperties);
65      }
66  
67      public TransportGlobalEndpointDefinitionParser(String metaOrProtocol, boolean isMeta,
68                                                     String[] endpointAttributes,
69                                                     String[] addressAttributes,
70                                                     String[][] requiredAddressAttributes,
71                                                     String[][] requiredProperties)
72      {
73          super(metaOrProtocol, isMeta,
74                  new OrphanEndpointDefinitionParser(EndpointURIEndpointBuilder.class),
75                  addressAttributes, endpointAttributes, requiredAddressAttributes, requiredProperties);
76      }
77  
78  }