| /* | 
|  * Copyright (C) 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 cn.emay.sdk.util.json.gson; | 
|   | 
| /** | 
|  * Defines the expected format for a {@code long} or {@code Long} type when its | 
|  * serialized. | 
|  * | 
|  * @since 1.3 | 
|  * | 
|  * @author Inderjeet Singh | 
|  * @author Joel Leitch | 
|  */ | 
| public enum LongSerializationPolicy { | 
|     /** | 
|      * This is the "default" serialization policy that will output a {@code long} | 
|      * object as a JSON number. For example, assume an object has a long field named | 
|      * "f" then the serialized output would be: {@code {"f":123}}. | 
|      */ | 
|     DEFAULT() { | 
|         @Override | 
|         public JsonElement serialize(Long value) { | 
|             return new JsonPrimitive(value); | 
|         } | 
|     }, | 
|   | 
|     /** | 
|      * Serializes a long value as a quoted string. For example, assume an object has | 
|      * a long field named "f" then the serialized output would be: | 
|      * {@code {"f":"123"}}. | 
|      */ | 
|     STRING() { | 
|         @Override | 
|         public JsonElement serialize(Long value) { | 
|             return new JsonPrimitive(String.valueOf(value)); | 
|         } | 
|     }; | 
|   | 
|     /** | 
|      * Serialize this {@code value} using this serialization policy. | 
|      * | 
|      * @param value | 
|      *            the long value to be serialized into a {@link JsonElement} | 
|      * @return the serialized version of {@code value} | 
|      */ | 
|     public abstract JsonElement serialize(Long value); | 
| } |