package org.openflexo.ws.jira;
import java.io.Reader;
import java.lang.reflect.Type;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonIOException;
import com.google.gson.JsonSyntaxException;
import com.google.gson.TypeAdapter;
import com.google.gson.reflect.TypeToken;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
public class JIRAGson {
private static final JIRAGson instance = new JIRAGson();
public static JIRAGson getInstance() {
return instance;
}
private Gson gson;
private JIRAGson() {
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapterFactory(new JiraObjectTypeAdapterFactory());
gson = builder.create();
}
public <T> TypeAdapter<T> getAdapter(TypeToken<T> type) {
return gson.getAdapter(type);
}
public <T> TypeAdapter<T> getAdapter(Class<T> type) {
return gson.getAdapter(type);
}
public JsonElement toJsonTree(Object src) {
return gson.toJsonTree(src);
}
public JsonElement toJsonTree(Object src, Type typeOfSrc) {
return gson.toJsonTree(src, typeOfSrc);
}
public String toJson(Object src) {
return gson.toJson(src);
}
public String toJson(Object src, Type typeOfSrc) {
return gson.toJson(src, typeOfSrc);
}
public void toJson(Object src, Appendable writer) throws JsonIOException {
gson.toJson(src, writer);
}
public void toJson(Object src, Type typeOfSrc, Appendable writer) throws JsonIOException {
gson.toJson(src, typeOfSrc, writer);
}
public void toJson(Object src, Type typeOfSrc, JsonWriter writer) throws JsonIOException {
gson.toJson(src, typeOfSrc, writer);
}
public String toJson(JsonElement jsonElement) {
return gson.toJson(jsonElement);
}
public void toJson(JsonElement jsonElement, Appendable writer) throws JsonIOException {
gson.toJson(jsonElement, writer);
}
public void toJson(JsonElement jsonElement, JsonWriter writer) throws JsonIOException {
gson.toJson(jsonElement, writer);
}
public <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException {
return gson.fromJson(json, classOfT);
}
public <T> T fromJson(String json, Type typeOfT) throws JsonSyntaxException {
return gson.fromJson(json, typeOfT);
}
public <T> T fromJson(Reader json, Class<T> classOfT) throws JsonSyntaxException, JsonIOException {
return gson.fromJson(json, classOfT);
}
public <T> T fromJson(Reader json, Type typeOfT) throws JsonIOException, JsonSyntaxException {
return gson.fromJson(json, typeOfT);
}
public <T> T fromJson(JsonReader reader, Type typeOfT) throws JsonIOException, JsonSyntaxException {
return gson.fromJson(reader, typeOfT);
}
public <T> T fromJson(JsonElement json, Class<T> classOfT) throws JsonSyntaxException {
return gson.fromJson(json, classOfT);
}
public <T> T fromJson(JsonElement json, Type typeOfT) throws JsonSyntaxException {
return gson.fromJson(json, typeOfT);
}
}