Example usage for com.google.gson.reflect TypeToken get

List of usage examples for com.google.gson.reflect TypeToken get

Introduction

In this page you can find the example usage for com.google.gson.reflect TypeToken get.

Prototype

public static <T> TypeToken<T> get(Class<T> type) 

Source Link

Document

Gets type literal for the given Class instance.

Usage

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);
}