List of usage examples for com.google.gson.reflect TypeToken get
public static <T> TypeToken<T> get(Class<T> type)
From source file:org.jclouds.json.internal.OptionalTypeAdapterFactory.java
License:Apache License
@SuppressWarnings("unchecked") @Override/* ww w . ja v a 2s. c o m*/ public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { Type type = typeToken.getType(); if (typeToken.getRawType() != Optional.class || !(type instanceof ParameterizedType)) { return null; } Type elementType = ((ParameterizedType) type).getActualTypeArguments()[0]; TypeAdapter<?> elementAdapter = gson.getAdapter(TypeToken.get(elementType)); return (TypeAdapter<T>) newOptionalAdapter(elementAdapter); }
From source file:org.lanternpowered.server.script.function.action.json.ActionTypeAdapterFactory.java
License:MIT License
@Override protected JsonElement serialize(TypeToken<Action> type, Action value, Gson gson) throws IOException { if (value instanceof ConditionalAction) { return gson.getDelegateAdapter(this, TypeToken.get(ConditionalAction.class)) .toJsonTree((ConditionalAction) value); } else if (value instanceof EmptyAction) { return gson.getDelegateAdapter(this, TypeToken.get(EmptyAction.class)).toJsonTree((EmptyAction) value); } else if (value instanceof MultiAction) { return gson.getDelegateAdapter(this, TypeToken.get(MultiAction.class)).toJsonTree((MultiAction) value); } else if (value instanceof ScriptFunction) { return gson.getDelegateAdapter(this, TypeToken.get(ScriptFunction.class)) .toJsonTree((ScriptFunction) value); }//w w w . j a v a 2s . c o m return super.serialize(type, value, gson); }
From source file:org.lanternpowered.server.script.function.action.json.ActionTypeAdapterFactory.java
License:MIT License
@Override protected Action deserialize(TypeToken<Action> type, JsonElement element, Gson gson) { final Class<? super Action> raw = type.getRawType(); if (ScriptFunction.class.isAssignableFrom(raw)) { return LanternScriptGameRegistry.get().compile(element.getAsString(), Action.class).get(); } else if (ConditionalAction.class.isAssignableFrom(raw)) { return gson.getDelegateAdapter(this, TypeToken.get(ConditionalAction.class)).fromJsonTree(element); } else if (EmptyAction.class.isAssignableFrom(raw)) { return gson.getDelegateAdapter(this, TypeToken.get(EmptyAction.class)).fromJsonTree(element); } else if (MultiAction.class.isAssignableFrom(raw)) { return gson.getDelegateAdapter(this, TypeToken.get(MultiAction.class)).fromJsonTree(element); } else if (raw == Action.class) { // The actual action type isn't provided, we will try // to assume the right type based in the json format if (element.isJsonNull()) { return Action.empty(); } else if (element.isJsonArray()) { return gson.getDelegateAdapter(this, TypeToken.get(MultiAction.class)).fromJsonTree(element); } else if (element.isJsonObject()) { final JsonObject obj = element.getAsJsonObject(); if (obj.has(ConditionalActionJsonSerializer.ACTION) && obj.has(ConditionalActionJsonSerializer.CONDITION)) { return gson.getDelegateAdapter(this, TypeToken.get(ConditionalAction.class)) .fromJsonTree(element); }/*from w ww . j a va 2s . co m*/ } else { final String value = element.getAsString(); if (value.startsWith(SCRIPT_PREFIX)) { return LanternScriptGameRegistry.get().compile(value, Action.class).get(); } } } return super.deserialize(type, element, gson); }
From source file:org.lanternpowered.server.script.function.condition.json.ConditionTypeAdapterFactory.java
License:MIT License
@Override protected JsonElement serialize(TypeToken<Condition> type, Condition value, Gson gson) throws IOException { if (value instanceof AndCondition) { return gson.getDelegateAdapter(this, TypeToken.get(AndCondition.class)) .toJsonTree((AndCondition) value); } else if (value instanceof OrCondition) { return gson.getDelegateAdapter(this, TypeToken.get(OrCondition.class)).toJsonTree((OrCondition) value); } else if (value instanceof ScriptFunction) { return gson.getDelegateAdapter(this, TypeToken.get(ScriptFunction.class)) .toJsonTree((ScriptFunction) value); }/*from www .j a v a2 s .co m*/ return super.serialize(type, value, gson); }
From source file:org.lanternpowered.server.script.function.condition.json.ConditionTypeAdapterFactory.java
License:MIT License
@Override protected Condition deserialize(TypeToken<Condition> type, JsonElement element, Gson gson) { final Class<? super Condition> raw = type.getRawType(); if (AndCondition.class.isAssignableFrom(raw)) { return gson.getDelegateAdapter(this, TypeToken.get(AndCondition.class)).fromJsonTree(element); } else if (OrCondition.class.isAssignableFrom(raw)) { return gson.getDelegateAdapter(this, TypeToken.get(OrCondition.class)).fromJsonTree(element); } else if (raw == Condition.class) { // The actual condition type isn't provided, we will try // to assume the right type based in the json format if (element.isJsonArray()) { return gson.getAdapter(AndCondition.class).fromJsonTree(element); } else if (element.isJsonPrimitive()) { final String value = element.getAsString(); if (value.startsWith(SCRIPT_PREFIX)) { return LanternScriptGameRegistry.get().compile(value, Condition.class).get(); }//www .ja va 2s. c om } } return super.deserialize(type, element, gson); }
From source file:org.lanternpowered.server.script.function.value.json.DoubleValueProviderTypeAdapterFactory.java
License:MIT License
@Override protected JsonElement serialize(TypeToken<DoubleValueProvider> type, DoubleValueProvider value, Gson gson) throws IOException { if (value instanceof DoubleValueProvider.Range) { return gson.getDelegateAdapter(this, TypeToken.get(DoubleValueProvider.Range.class)) .toJsonTree((DoubleValueProvider.Range) value); } else if (value instanceof DoubleValueProvider.Constant) { return gson.getDelegateAdapter(this, TypeToken.get(DoubleValueProvider.Constant.class)) .toJsonTree((DoubleValueProvider.Constant) value); } else if (value instanceof ScriptFunction) { return gson.getDelegateAdapter(this, TypeToken.get(ScriptFunction.class)) .toJsonTree((ScriptFunction) value); }/*from w w w . j a va2s . c o m*/ return super.serialize(type, value, gson); }
From source file:org.lanternpowered.server.script.function.value.json.DoubleValueProviderTypeAdapterFactory.java
License:MIT License
@Override protected DoubleValueProvider deserialize(TypeToken<DoubleValueProvider> type, JsonElement element, Gson gson) { final Class<? super DoubleValueProvider> raw = type.getRawType(); if (FloatValueProvider.Constant.class.isAssignableFrom(raw)) { return gson.getDelegateAdapter(this, TypeToken.get(DoubleValueProvider.Constant.class)) .fromJsonTree(element);//w w w .j av a2s . c o m } else if (FloatValueProvider.Range.class.isAssignableFrom(raw)) { return gson.getDelegateAdapter(this, TypeToken.get(DoubleValueProvider.Range.class)) .fromJsonTree(element); } else if (raw == DoubleValueProvider.class) { // The actual condition type isn't provided, we will try // to assume the right type based in the json format if (element.isJsonPrimitive()) { final String value = element.getAsString(); if (value.startsWith(SCRIPT_PREFIX)) { return LanternScriptGameRegistry.get().compile(value, DoubleValueProvider.class).get(); } return gson.getDelegateAdapter(this, TypeToken.get(DoubleValueProvider.Constant.class)) .fromJsonTree(element); } } return super.deserialize(type, element, gson); }
From source file:org.lanternpowered.server.script.function.value.json.FloatValueProviderTypeAdapterFactory.java
License:MIT License
@Override protected JsonElement serialize(TypeToken<FloatValueProvider> type, FloatValueProvider value, Gson gson) throws IOException { if (value instanceof FloatValueProvider.Range) { return gson.getDelegateAdapter(this, TypeToken.get(FloatValueProvider.Range.class)) .toJsonTree((FloatValueProvider.Range) value); } else if (value instanceof FloatValueProvider.Constant) { return gson.getDelegateAdapter(this, TypeToken.get(FloatValueProvider.Constant.class)) .toJsonTree((FloatValueProvider.Constant) value); } else if (value instanceof ScriptFunction) { return gson.getDelegateAdapter(this, TypeToken.get(ScriptFunction.class)) .toJsonTree((ScriptFunction) value); }//from w w w . j a va2 s .c o m return super.serialize(type, value, gson); }
From source file:org.lanternpowered.server.script.function.value.json.FloatValueProviderTypeAdapterFactory.java
License:MIT License
@Override protected FloatValueProvider deserialize(TypeToken<FloatValueProvider> type, JsonElement element, Gson gson) { final Class<? super FloatValueProvider> raw = type.getRawType(); if (FloatValueProvider.Constant.class.isAssignableFrom(raw)) { return gson.getDelegateAdapter(this, TypeToken.get(FloatValueProvider.Constant.class)) .fromJsonTree(element);//w w w . j a va 2 s . co m } else if (FloatValueProvider.Range.class.isAssignableFrom(raw)) { return gson.getDelegateAdapter(this, TypeToken.get(FloatValueProvider.Range.class)) .fromJsonTree(element); } else if (raw == FloatValueProvider.class) { // The actual condition type isn't provided, we will try // to assume the right type based in the json format if (element.isJsonPrimitive()) { final String value = element.getAsString(); if (value.startsWith(SCRIPT_PREFIX)) { return LanternScriptGameRegistry.get().compile(value, FloatValueProvider.class).get(); } return gson.getDelegateAdapter(this, TypeToken.get(FloatValueProvider.Constant.class)) .fromJsonTree(element); } } return super.deserialize(type, element, gson); }
From source file:org.lanternpowered.server.script.function.value.json.IntValueProviderTypeAdapterFactory.java
License:MIT License
@Override protected JsonElement serialize(TypeToken<IntValueProvider> type, IntValueProvider value, Gson gson) throws IOException { if (value instanceof IntValueProvider.Range) { return gson.getDelegateAdapter(this, TypeToken.get(IntValueProvider.Range.class)) .toJsonTree((IntValueProvider.Range) value); } else if (value instanceof IntValueProvider.Constant) { return gson.getDelegateAdapter(this, TypeToken.get(IntValueProvider.Constant.class)) .toJsonTree((IntValueProvider.Constant) value); } else if (value instanceof ScriptFunction) { return gson.getDelegateAdapter(this, TypeToken.get(ScriptFunction.class)) .toJsonTree((ScriptFunction) value); }//from w ww . ja v a2s. c o m return super.serialize(type, value, gson); }