1 16 package com.google.gwt.user.client.rpc.impl; 17 18 import com.google.gwt.core.client.JavaScriptObject; 19 import com.google.gwt.user.client.rpc.SerializationException; 20 21 24 public final class ClientSerializationStreamReader extends 25 AbstractSerializationStreamReader { 26 27 private static native JavaScriptObject eval(String encoded) ; 30 31 private static native int getLength(JavaScriptObject array) ; 34 35 int index; 36 37 JavaScriptObject results; 38 39 JavaScriptObject stringTable; 40 41 private Serializer serializer; 42 43 public ClientSerializationStreamReader(Serializer serializer) { 44 this.serializer = serializer; 45 } 46 47 public void prepareToRead(String encoded) throws SerializationException { 48 results = eval(encoded); 49 index = getLength(results); 50 super.prepareToRead(encoded); 51 stringTable = readJavaScriptObject(); 52 } 53 54 public native boolean readBoolean() ; 57 58 public native byte readByte() ; 61 62 public native char readChar() ; 65 66 public native double readDouble() ; 69 70 public native float readFloat() ; 73 74 public native int readInt() ; 77 78 public native long readLong() ; 81 82 public native short readShort() ; 85 86 public String readString() throws SerializationException { 87 return getString(readInt()); 88 } 89 90 protected Object deserialize(String typeSignature) 91 throws SerializationException { 92 Object instance = serializer.instantiate(this, typeSignature); 93 rememberDecodedObject(instance); 94 serializer.deserialize(this, instance, typeSignature); 95 return instance; 96 } 97 98 protected native String getString(int index) ; 105 106 private native JavaScriptObject readJavaScriptObject() ; 109 110 } 111 | Popular Tags |