1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.util;
19
20 import java.io.IOException;
21
22 import org.apache.hadoop.hbase.classification.InterfaceAudience;
23 import org.apache.hbase.thirdparty.com.google.gson.GsonBuilder;
24 import org.apache.hbase.thirdparty.com.google.gson.LongSerializationPolicy;
25 import org.apache.hbase.thirdparty.com.google.gson.TypeAdapter;
26 import org.apache.hbase.thirdparty.com.google.gson.stream.JsonReader;
27 import org.apache.hbase.thirdparty.com.google.gson.stream.JsonWriter;
28
29
30
31
32 @InterfaceAudience.Private
33 public final class GsonUtil {
34
35 private GsonUtil() {
36 }
37
38
39
40
41
42
43 public static GsonBuilder createGson() {
44 return new GsonBuilder().setLongSerializationPolicy(LongSerializationPolicy.STRING)
45 .registerTypeAdapter(LongAdder.class, new TypeAdapter<LongAdder>() {
46
47 @Override
48 public void write(JsonWriter out, LongAdder value) throws IOException {
49 out.value(value.longValue());
50 }
51
52 @Override
53 public LongAdder read(JsonReader in) throws IOException {
54 LongAdder value = new LongAdder();
55 value.add(in.nextLong());
56 return value;
57 }
58 });
59 }
60
61 public static GsonBuilder createGsonWithDisableHtmlEscaping() {
62 return createGson().disableHtmlEscaping();
63 }
64 }