1 package org.codehaus.xfire.exchange; 2 3 import org.codehaus.xfire.MessageContext; 4 import org.codehaus.xfire.service.OperationInfo; 5 import org.codehaus.xfire.transport.Channel; 6 import org.codehaus.xfire.transport.Transport; 7 import org.codehaus.xfire.transport.TransportManager; 8 import org.codehaus.xfire.transport.dead.DeadLetterTransport; 9 10 public abstract class AbstractMessageExchange 11 implements MessageExchange 12 { 13 private OperationInfo operation; 14 15 private MessageContext context; 16 17 private InMessage inMessage; 18 private OutMessage outMessage; 19 private AbstractMessage faultMessage; 20 21 public AbstractMessageExchange(MessageContext context) 22 { 23 this.context = context; 24 } 25 26 public MessageContext getContext() 27 { 28 return context; 29 } 30 31 public OperationInfo getOperation() 32 { 33 return operation; 34 } 35 36 public void setOperation(OperationInfo operation) 37 { 38 this.operation = operation; 39 } 40 41 public InMessage getInMessage() 42 throws UnsupportedOperationException 43 { 44 return inMessage; 45 } 46 47 public OutMessage getOutMessage() 48 throws UnsupportedOperationException 49 { 50 return outMessage; 51 } 52 53 public AbstractMessage getFaultMessage() 54 throws UnsupportedOperationException 55 { 56 return faultMessage; 57 } 58 59 public void setFaultMessage(AbstractMessage faultMessage) 60 { 61 this.faultMessage = faultMessage; 62 } 63 64 public void setInMessage(InMessage inMessage) 65 { 66 this.inMessage = inMessage; 67 } 68 69 public void setOutMessage(OutMessage outMessage) 70 { 71 this.outMessage = outMessage; 72 } 73 74 public AbstractMessage getMessage(String type) 75 throws UnsupportedOperationException 76 { 77 throw new UnsupportedOperationException(); 78 } 79 80 public boolean hasFaultMessage() 81 { 82 return false; 83 } 84 85 public boolean hasInMessage() 86 { 87 return false; 88 } 89 90 public boolean hasMessage(String type) 91 { 92 return false; 93 } 94 95 public boolean hasOutMessage() 96 { 97 return false; 98 } 99 100 public void setMessage(String type, AbstractMessage faultMessage) 101 { 102 throw new UnsupportedOperationException(); 103 } 104 105 public Channel getInChannel() 106 { 107 return getDeadLetterChannel(); 108 } 109 110 public Channel getOutChannel() 111 { 112 return getDeadLetterChannel(); 113 } 114 115 public Channel getFaultChannel() 116 { 117 return getDeadLetterChannel(); 118 } 119 120 public Channel getDeadLetterChannel() 121 { 122 TransportManager tm = getContext().getXFire().getTransportManager(); 123 Transport transport = tm.getTransport(DeadLetterTransport.NAME); 124 125 try 126 { 127 return transport.createChannel(); 128 } 129 catch (Exception e) 130 { 131 e.printStackTrace(); 132 133 return null; 134 } 135 } 136 }