1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.jclouds.json.internal;
20
21 import java.lang.reflect.Type;
22
23 import javax.inject.Inject;
24 import javax.inject.Singleton;
25
26 import org.jclouds.json.Json;
27
28 import com.google.common.collect.ForwardingObject;
29 import com.google.gson.Gson;
30
31
32
33
34 @Singleton
35 public class GsonWrapper extends ForwardingObject implements Json {
36
37 private final Gson gson;
38
39 @Inject
40 public GsonWrapper(Gson gson) {
41 this.gson = gson;
42 }
43
44 @SuppressWarnings("unchecked")
45 @Override
46 public <T> T fromJson(String json, Type type) {
47 return (T) gson.fromJson(json, type);
48 }
49
50 @Override
51 public <T> T fromJson(String json, Class<T> classOfT) {
52 return gson.fromJson(json, classOfT);
53 }
54
55 @Override
56 public String toJson(Object src) {
57 return gson.toJson(src);
58 }
59
60 @Override
61 public String toJson(Object src, Type type) {
62 return gson.toJson(src, type);
63 }
64
65 @Override
66 public Gson delegate() {
67 return gson;
68 }
69
70 }