aboutsummaryrefslogtreecommitdiff
path: root/java/com/xagasoft/gats/GatsObject.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/xagasoft/gats/GatsObject.java')
-rw-r--r--java/com/xagasoft/gats/GatsObject.java30
1 files changed, 27 insertions, 3 deletions
diff --git a/java/com/xagasoft/gats/GatsObject.java b/java/com/xagasoft/gats/GatsObject.java
index 8c398e8..fc3fb5a 100644
--- a/java/com/xagasoft/gats/GatsObject.java
+++ b/java/com/xagasoft/gats/GatsObject.java
@@ -3,6 +3,13 @@ package com.xagasoft.gats;
3import java.io.InputStream; 3import java.io.InputStream;
4import java.io.OutputStream; 4import java.io.OutputStream;
5 5
6/**
7 * The abstract base class of all Gats storage classes. You probably don't
8 * need to worry about these functions at all, maybe getType. The IO functions
9 * in this class shouldn't really be used since they won't contain the proper
10 * packet header info. See com.xagasoft.gats.GatsOutputStream and
11 * com.xagasoft.gats.GatsInputStream for that.
12 */
6public abstract class GatsObject 13public abstract class GatsObject
7{ 14{
8 public final static int INTEGER = 1; 15 public final static int INTEGER = 1;
@@ -12,12 +19,29 @@ public abstract class GatsObject
12 public final static int DICTIONARY = 5; 19 public final static int DICTIONARY = 5;
13 public final static int BOOLEAN = 6; 20 public final static int BOOLEAN = 6;
14 21
22 /**
23 * Gets the type of the current object, type can be one of INTEGER, FLOAT,
24 * STRING, LIST, DICTIONARY, or BOOLEAN.
25 */
15 public abstract int getType(); 26 public abstract int getType();
16 27
17 public abstract void read( InputStream is, char cType ) throws java.io.IOException; 28 /**
18 public abstract void write( OutputStream os ) throws java.io.IOException; 29 * Read an object from the given input stream, with a particular type, this
30 * function is used internally.
31 */
32 abstract void read( InputStream is, char cType ) throws java.io.IOException;
19 33
20 public static GatsObject read( InputStream is ) throws java.io.IOException 34 /**
35 * Write the current object to the output stream.
36 */
37 abstract void write( OutputStream os ) throws java.io.IOException;
38
39 /**
40 * Static function that returns a new object deserialized from an input
41 * stream. This still doesn't take advantage of packet data, so you
42 * probably shouldn't use this yourself.
43 */
44 static GatsObject read( InputStream is ) throws java.io.IOException
21 { 45 {
22 char type = (char)is.read(); 46 char type = (char)is.read();
23 GatsObject goRet = null; 47 GatsObject goRet = null;