View Javadoc
1   /*
2    * Copyright (C) 2009 The Guava Authors
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package com.google.common.collect;
18  
19  import com.google.gwt.user.client.rpc.SerializationException;
20  import com.google.gwt.user.client.rpc.SerializationStreamReader;
21  import com.google.gwt.user.client.rpc.SerializationStreamWriter;
22  import java.util.Comparator;
23  
24  /**
25   * This class implements the GWT serialization of {@link ImmutableSetMultimap}.
26   *
27   * @author Chris Povirk
28   */
29  public class ImmutableSetMultimap_CustomFieldSerializer {
30  
31    public static void deserialize(
32        SerializationStreamReader reader, ImmutableSetMultimap<?, ?> instance) {}
33  
34    // Serialization type safety is at the caller's mercy.
35    @SuppressWarnings("unchecked")
36    public static ImmutableSetMultimap<Object, Object> instantiate(SerializationStreamReader reader)
37        throws SerializationException {
38      Comparator<Object> valueComparator = (Comparator<Object>) reader.readObject();
39      ImmutableSetMultimap.Builder<Object, Object> builder = ImmutableSetMultimap.builder();
40      if (valueComparator != null) {
41        builder.orderValuesBy(valueComparator);
42      }
43      return (ImmutableSetMultimap<Object, Object>)
44          Multimap_CustomFieldSerializerBase.instantiate(reader, builder);
45    }
46  
47    public static void serialize(
48        SerializationStreamWriter writer, ImmutableSetMultimap<?, ?> instance)
49        throws SerializationException {
50      writer.writeObject(instance.valueComparator());
51      Multimap_CustomFieldSerializerBase.serialize(writer, instance);
52    }
53  }