View Javadoc

1   /*** 
2    * 
3    * Copyright 2004 Protique Ltd
4    * 
5    * Licensed under the Apache License, Version 2.0 (the "License"); 
6    * you may not use this file except in compliance with the License. 
7    * You may obtain a copy of the License at 
8    * 
9    * http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS, 
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
14   * See the License for the specific language governing permissions and 
15   * limitations under the License. 
16   * 
17   **/
18  
19  package org.codehaus.activemq.message;
20  
21  import org.codehaus.activemq.util.JMSExceptionHelper;
22  
23  import javax.jms.JMSException;
24  import java.io.Externalizable;
25  import java.io.IOException;
26  import java.io.ObjectInput;
27  import java.io.ObjectOutput;
28  
29  /***
30   * A helper class for using Packet instances with object serialization
31   * 
32   * @version $Revision: 1.4 $
33   */
34  public class PacketFacade implements Externalizable {
35  
36      private static final WireFormat wireFormat = new DefaultWireFormat();
37  
38      private transient Packet packet;
39  
40      public PacketFacade() {
41      }
42  
43      public PacketFacade(Packet packet) {
44          this.packet = packet;
45      }
46  
47      public Packet getPacket() {
48          return packet;
49      }
50  
51      public void writeExternal(ObjectOutput out) throws IOException {
52          try {
53              wireFormat.writePacket(packet, out);
54          }
55          catch (JMSException e) {
56              throw JMSExceptionHelper.newIOException(e);
57          }
58      }
59  
60      public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
61          int type = in.readByte();
62          packet = wireFormat.readPacket(type, in);
63      }
64  }