| /* |
| * Copyright 2009 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.rpc.client.impl; |
| |
| import com.google.gwt.rpc.client.ast.CommandSink; |
| import com.google.gwt.rpc.client.ast.ValueCommand; |
| import com.google.gwt.user.client.rpc.SerializationException; |
| import com.google.gwt.user.client.rpc.SerializationStreamWriter; |
| |
| /** |
| * Contains base methods for implementing a SerializationStreamWriter. |
| */ |
| public abstract class CommandSerializationStreamWriterBase implements |
| SerializationStreamWriter { |
| |
| private final CommandSink commandSink; |
| |
| protected CommandSerializationStreamWriterBase(CommandSink sink) { |
| this.commandSink = sink; |
| } |
| |
| public void writeBoolean(boolean value) throws SerializationException { |
| commandSink.accept(makeValue(boolean.class, value)); |
| } |
| |
| public void writeByte(byte value) throws SerializationException { |
| commandSink.accept(makeValue(byte.class, value)); |
| } |
| |
| public void writeChar(char value) throws SerializationException { |
| commandSink.accept(makeValue(char.class, value)); |
| } |
| |
| public void writeDouble(double value) throws SerializationException { |
| commandSink.accept(makeValue(double.class, value)); |
| } |
| |
| public void writeFloat(float value) throws SerializationException { |
| commandSink.accept(makeValue(float.class, value)); |
| } |
| |
| public void writeInt(int value) throws SerializationException { |
| commandSink.accept(makeValue(int.class, value)); |
| } |
| |
| public void writeLong(long value) throws SerializationException { |
| commandSink.accept(makeValue(long.class, value)); |
| } |
| |
| public void writeObject(Object instance) throws SerializationException { |
| commandSink.accept(makeValue(instance != null ? instance.getClass() |
| : void.class, instance)); |
| } |
| |
| public void writeShort(short value) throws SerializationException { |
| commandSink.accept(makeValue(short.class, value)); |
| } |
| |
| public void writeString(String value) throws SerializationException { |
| commandSink.accept(makeValue(String.class, value)); |
| } |
| |
| protected final CommandSink getCommandSink() { |
| return commandSink; |
| } |
| |
| protected abstract ValueCommand makeValue(Class<?> type, Object value) |
| throws SerializationException; |
| |
| } |