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.api.endpoint;
8   
9   import org.mule.MessageExchangePattern;
10  import org.mule.api.MuleContext;
11  import org.mule.api.context.MuleContextAware;
12  import org.mule.api.lifecycle.InitialisationException;
13  import org.mule.api.processor.MessageProcessor;
14  import org.mule.api.retry.RetryPolicyTemplate;
15  import org.mule.api.transaction.TransactionConfig;
16  import org.mule.api.transformer.Transformer;
17  import org.mule.api.transport.Connector;
18  import org.mule.endpoint.URIBuilder;
19  
20  import java.util.List;
21  import java.util.Map;
22  
23  /**
24   * Constructs endpoints. Transport specific endpoints can easily resolve the Endpoint implementation to be
25   * uses, for generic endpoints we can either resolve the transport from uri string or use a default
26   * implementation.
27   */
28  public interface EndpointBuilder extends MuleContextAware, Cloneable
29  {
30  
31      /**
32       * Constructs inbound endpoints
33       * 
34       * @throws EndpointException
35       * @throws InitialisationException
36       */
37      InboundEndpoint buildInboundEndpoint() throws EndpointException, InitialisationException;
38  
39      /**
40       * Constructs outbound endpoints
41       * 
42       * @throws EndpointException
43       * @throws InitialisationException
44       */
45      OutboundEndpoint buildOutboundEndpoint() throws EndpointException, InitialisationException;
46  
47      void setConnector(Connector connector);
48  
49      /** @deprecated Use addMessageProcessor() */
50      void addTransformer(Transformer transformer);
51  
52      /** @deprecated Use addResponseMessageProcessor() */
53      void addResponseTransformer(Transformer transformer);
54  
55      /** @deprecated Use setMessageProcessors() */
56      void setTransformers(List<Transformer> transformers);
57  
58      /** @deprecated Use setResponseMessageProcessors() */
59      void setResponseTransformers(List<Transformer> responseTransformer);
60  
61      void setName(String name);
62  
63      void setProperty(Object key, Object value);
64      
65      void setProperties(Map<Object, Object> properties);
66  
67      void setTransactionConfig(TransactionConfig transactionConfig);
68  
69      void setDeleteUnacceptedMessages(boolean deleteUnacceptedMessages);
70      
71      void setExchangePattern(MessageExchangePattern mep);
72  
73      void setResponseTimeout(int responseTimeout);
74  
75      void setInitialState(String initialState);
76  
77      void setEncoding(String encoding);
78  
79      void setRegistryId(String registryId);
80  
81      void setMuleContext(MuleContext muleContext);
82  
83      void setRetryPolicyTemplate(RetryPolicyTemplate retryPolicyTemplate);
84  
85      void setMessageProcessors(List <MessageProcessor> messageProcessors);
86  
87      void addMessageProcessor(MessageProcessor messageProcessor);
88  
89      void setResponseMessageProcessors(List <MessageProcessor> responseMessageProcessors);
90  
91      void addResponseMessageProcessor(MessageProcessor responseMessageProcessor);
92  
93      void setDisableTransportTransformer(boolean disableTransportTransformer);
94      
95      void setURIBuilder(URIBuilder URIBuilder);
96  
97      Object clone() throws CloneNotSupportedException;
98  
99  }