aboutsummaryrefslogtreecommitdiffstats
path: root/guava-gwt/src/com/google/common/collect/Multiset_CustomFieldSerializerBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-gwt/src/com/google/common/collect/Multiset_CustomFieldSerializerBase.java')
-rw-r--r--guava-gwt/src/com/google/common/collect/Multiset_CustomFieldSerializerBase.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/guava-gwt/src/com/google/common/collect/Multiset_CustomFieldSerializerBase.java b/guava-gwt/src/com/google/common/collect/Multiset_CustomFieldSerializerBase.java
index 7c44bba..0cad199 100644
--- a/guava-gwt/src/com/google/common/collect/Multiset_CustomFieldSerializerBase.java
+++ b/guava-gwt/src/com/google/common/collect/Multiset_CustomFieldSerializerBase.java
@@ -23,12 +23,25 @@ import com.google.gwt.user.client.rpc.SerializationStreamWriter;
/**
* This class contains static utility methods for writing {@code Multiset} GWT
* field serializers. Serializers should delegate to
- * {@link #serialize(SerializationStreamWriter, Multiset)} and
+ * {@link #serialize(SerializationStreamWriter, Multiset)} and to either
+ * {@link #instantiate(SerializationStreamReader, ImmutableMultiset.Builder)} or
* {@link #populate(SerializationStreamReader, Multiset)}.
*
* @author Chris Povirk
*/
final class Multiset_CustomFieldSerializerBase {
+ static ImmutableMultiset<Object> instantiate(
+ SerializationStreamReader reader,
+ ImmutableMultiset.Builder<Object> builder)
+ throws SerializationException {
+ int distinctElements = reader.readInt();
+ for (int i = 0; i < distinctElements; i++) {
+ Object element = reader.readObject();
+ int count = reader.readInt();
+ builder.addCopies(element, count);
+ }
+ return builder.build();
+ }
static Multiset<Object> populate(
SerializationStreamReader reader, Multiset<Object> multiset)