001 package com.croftsoft.core.io; 002 003 import java.io.*; 004 005 /********************************************************************* 006 * An Encoder and Parser implementation that uses object serialization. 007 * 008 * @version 009 * 2003-05-28 010 * @since 011 * 2003-05-13 012 * @author 013 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 014 *********************************************************************/ 015 016 public final class SerializableCoder 017 implements Encoder, Parser 018 ////////////////////////////////////////////////////////////////////// 019 ////////////////////////////////////////////////////////////////////// 020 { 021 022 public static final SerializableCoder INSTANCE 023 = new SerializableCoder ( ); 024 025 ////////////////////////////////////////////////////////////////////// 026 ////////////////////////////////////////////////////////////////////// 027 028 public byte [ ] encode ( Object object ) 029 throws IOException 030 ////////////////////////////////////////////////////////////////////// 031 { 032 return SerializableLib.compress ( ( Serializable ) object ); 033 } 034 035 public Object parse ( 036 InputStream inputStream, 037 int contentLength ) 038 throws IOException 039 ////////////////////////////////////////////////////////////////////// 040 { 041 try 042 { 043 return SerializableLib.load ( inputStream ); 044 } 045 catch ( ClassNotFoundException ex ) 046 { 047 throw ( IOException ) new IOException ( ).initCause ( ex ); 048 } 049 } 050 051 ////////////////////////////////////////////////////////////////////// 052 ////////////////////////////////////////////////////////////////////// 053 054 private SerializableCoder ( ) { } 055 056 ////////////////////////////////////////////////////////////////////// 057 ////////////////////////////////////////////////////////////////////// 058 }