1 /* 2 * Copyright (C) 2012 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.base; 18 19 import com.google.common.annotations.GwtCompatible; 20 import com.google.gwt.user.client.rpc.SerializationStreamReader; 21 import com.google.gwt.user.client.rpc.SerializationStreamWriter; 22 23 /** 24 * Custom GWT serializer for {@link Absent}. 25 * 26 * <p>GWT can serialize an absent {@code Optional} on its own, but the resulting object is a 27 * different instance than the singleton {@code Absent.INSTANCE}, which breaks equality. We 28 * implement a custom serializer to maintain the singleton property. 29 * 30 * @author Chris Povirk 31 */ 32 @GwtCompatible 33 public class Absent_CustomFieldSerializer { deserialize(SerializationStreamReader reader, Absent<?> instance)34 public static void deserialize(SerializationStreamReader reader, Absent<?> instance) {} 35 instantiate(SerializationStreamReader reader)36 public static Absent<?> instantiate(SerializationStreamReader reader) { 37 return Absent.INSTANCE; 38 } 39 serialize(SerializationStreamWriter writer, Absent<?> instance)40 public static void serialize(SerializationStreamWriter writer, Absent<?> instance) {} 41 } 42