1 package org.codehaus.xfire.transport;
2
3 import org.codehaus.xfire.MessageContext;
4 import org.codehaus.xfire.XFireException;
5 import org.codehaus.xfire.exchange.InMessage;
6 import org.codehaus.xfire.exchange.OutMessage;
7
8 /***
9 * Wraps another channel so it is easy to add another layer of functionality.
10 *
11 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
12 */
13 public class DelegatedChannel
14 implements Channel
15 {
16 private Channel channel;
17 private Transport transport;
18
19 public DelegatedChannel(Transport transport, Channel channel)
20 {
21 this.transport = transport;
22 this.channel = channel;
23 }
24
25 public void open()
26 throws Exception
27 {
28 channel.open();
29 }
30
31 public void send(MessageContext context, OutMessage message)
32 throws XFireException
33 {
34 channel.send(context, message);
35 }
36
37 public void receive(MessageContext context, InMessage message)
38 {
39 channel.receive(context, message);
40 }
41
42 public void setEndpoint(ChannelEndpoint receiver)
43 {
44 channel.setEndpoint(receiver);
45 }
46
47 public void close()
48 {
49 channel.close();
50 }
51
52 public Transport getTransport()
53 {
54 return transport;
55 }
56
57 public String getUri()
58 {
59 return channel.getUri();
60 }
61
62 public ChannelEndpoint getEndpoint()
63 {
64 return channel.getEndpoint();
65 }
66 }