1 16 package com.google.gwt.user.client.rpc.impl; 17 18 import com.google.gwt.user.client.rpc.SerializationException; 19 import com.google.gwt.user.client.rpc.SerializationStreamWriter; 20 21 26 public abstract class AbstractSerializationStreamWriter extends 27 AbstractSerializationStream implements SerializationStreamWriter { 28 29 public abstract String toString(); 30 31 public void writeBoolean(boolean fieldValue) { 32 append(fieldValue ? "1" : "0"); 33 } 34 35 public void writeByte(byte fieldValue) { 36 append(String.valueOf(fieldValue)); 37 } 38 39 public void writeChar(char ch) { 40 append(String.valueOf((int) ch)); 42 } 43 44 public void writeDouble(double fieldValue) { 45 append(String.valueOf(fieldValue)); 46 } 47 48 public void writeFloat(float fieldValue) { 49 append(String.valueOf(fieldValue)); 50 } 51 52 public void writeInt(int fieldValue) { 53 append(String.valueOf(fieldValue)); 54 } 55 56 public void writeLong(long fieldValue) { 57 append(String.valueOf(fieldValue)); 58 } 59 60 public void writeObject(Object instance) throws SerializationException { 61 if (instance == null) { 62 writeString(null); 64 return; 65 } 66 67 int objIndex = getIndexForObject(instance); 68 if (objIndex >= 0) { 69 writeInt(-(objIndex + 1)); 72 return; 73 } 74 75 saveIndexForObject(instance); 76 77 String typeSignature = getObjectTypeSignature(instance); 79 writeString(typeSignature); 80 serialize(instance, typeSignature); 82 } 83 84 public void writeShort(short value) { 85 append(String.valueOf(value)); 86 } 87 88 public void writeString(String value) { 89 writeInt(addString(value)); 90 } 91 92 98 protected abstract int addString(String string); 99 100 105 protected abstract void append(String token); 106 107 115 protected abstract int getIndexForObject(Object instance); 116 117 123 protected abstract String getObjectTypeSignature(Object instance); 124 125 130 protected abstract void saveIndexForObject(Object instance); 131 132 139 protected abstract void serialize(Object instance, String typeSignature) 140 throws SerializationException; 141 142 } 143 | Popular Tags |