package com.xagasoft.gats; import java.io.InputStream; import java.io.OutputStream; public abstract class GatsObject { public final static int INTEGER = 1; public final static int FLOAT = 2; public final static int STRING = 3; public final static int LIST = 4; public final static int DICTIONARY = 5; public final static int BOOLEAN = 6; public abstract int getType(); public abstract void read( InputStream is, char cType ) throws java.io.IOException; public abstract void write( OutputStream os ) throws java.io.IOException; public static GatsObject read( InputStream is ) throws java.io.IOException { char type = (char)is.read(); GatsObject goRet = null; switch( type ) { case 'i': goRet = new GatsInteger(); break; case 's': goRet = new GatsString(); break; case '0': case '1': goRet = new GatsBoolean(); break; case 'l': goRet = new GatsList(); break; case 'd': goRet = new GatsDictionary(); break; case 'f': case 'F': goRet = new GatsFloat(); break; case 'e': return null; default: throw new java.io.IOException("Invalid gats type discovered: " + (char)type ); } goRet.read( is, type ); return goRet; } };