View Javadoc

1   /* (c) Copyright 2003 Caleigo AB, All rights reserved. 
2    * 
3    * This library is free software; you can redistribute it and/or
4    * modify it under the terms of the GNU Lesser General Public
5    * License as published by the Free Software Foundation; either
6    * version 2.1 of the License, or (at your option) any later version.
7    * 
8    * This library is distributed in the hope that it will be useful,
9    * but WITHOUT ANY WARRANTY; without even the implied warranty of
10   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11   * Lesser General Public License for more details.
12   * 
13   * You should have received a copy of the GNU Lesser General Public
14   * License along with this library; if not, write to the Free Software
15   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16   *  
17   */
18  
19  package org.caleigo.toolkit.tunnel;
20  
21  
22  import java.io.*;
23  
24  import org.caleigo.toolkit.log.*;
25  
26  /***
27   *
28   * @author  Mattias Hagstrand
29   * @version 1.00
30   * 
31   *//* 
32   *
33   * WHEN        WHO               WHY & WHAT
34   * -----------------------------------------------------------------------------
35   * 2002-07-01  Mattias Hagstrand Creation
36   */
37  public class SerializeCodec implements ITunnelCodec
38  {   
39      // Constructors ------------------------------------------------------------
40      public SerializeCodec()
41      {
42      }
43      
44      // ITunnelCodec implementation ---------------------------------------------
45      
46      /***
47       * Transforms a message into bytes and writes them to the OutputStream.
48       */
49      public void encode(Object message, OutputStream out)
50          throws IOException
51      {
52          ObjectOutputStream objectOutputStream = new ObjectOutputStream(out);
53          objectOutputStream.writeObject(message);
54          objectOutputStream.flush();
55      }
56      
57      /***
58       * Reads bytes from the InputStream and transforms them into a message that
59       * is returned.
60       */
61      public Object decode(InputStream in)
62          throws IOException
63      {
64          try
65          {
66              ObjectInputStream objectInputStream = new ObjectInputStream(in);
67              return objectInputStream.readObject();
68          }
69          catch (ClassNotFoundException e)
70          {
71              Log.printError(this, "Couldn't decode input", e);
72              return null;
73          }
74      }
75  }