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:co.mitro.core.servlets.ServerRejectsServlet.java

License:Open Source License

/**
 * Sets the server hints to hintsString, after validation. Throws exceptions if the JSON data
 * is incorrect, although the validation isn't currently extremely careful.
 *///  w  w w .  ja  v  a2 s .co m
public static void setServerHintsJson(String hintsString) {
    try {
        // Parse and validate the hints
        // TODO: Unit test this more carefully

        // can't use gson.fromJson() because it always uses lenient parsing; copied from there
        // See https://code.google.com/p/google-gson/issues/detail?id=372
        JsonReader jsonReader = new JsonReader(new StringReader(hintsString));
        TypeAdapter<?> typeAdapter = gson.getAdapter(TypeToken.get(listType));
        @SuppressWarnings("unchecked")
        List<HintEntry> hints = (List<HintEntry>) typeAdapter.read(jsonReader);

        for (HintEntry hint : hints) {
            @SuppressWarnings("unused")
            Pattern regexp = Pattern.compile(hint.regex);

            if (hint.additional_submit_button_ids != null) {
                // optional: just don't include it instead of including an empty list
                assert hint.additional_submit_button_ids.size() > 0;
                for (String submitIds : hint.additional_submit_button_ids) {
                    assert !Strings.isNullOrEmpty(submitIds);
                }
            }

            if (hint.allow_empty_username != null) {
                assert hint.allow_empty_username : "omit allow_empty_username if false";
            }

            if (hint.empty_password_username_selector != null) {
                // TODO: Validate that this is a valid CSS selector?
                assert !hint.empty_password_username_selector
                        .isEmpty() : "omit empty_password_username_selector if there is no selector";
                assert hint.allow_empty_username != null && hint.allow_empty_username
                        .booleanValue() : "allow_empty_username must be true if empty_password_username_selector is present";
            }

            validateRules(hint.reject.login_submit);
            validateRules(hint.reject.submit);
            validateRules(hint.reject.password);
            validateRules(hint.reject.username);
            validateRules(hint.reject.form);
        }
        logger.info("setting {} server hints", hints.size());

        serverHintsJson = hintsString;
    } catch (IOException | IllegalStateException e) {
        // Rethrow the same way as gson.fromJson()
        throw new JsonSyntaxException(e);
    }
}

From source file:com.androidnetworking.gsonparserfactory.GsonParserFactory.java

License:Apache License

@Override
public Parser<ResponseBody, ?> responseBodyParser(Type type) {
    TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
    return new GsonResponseBodyParser<>(gson, adapter);
}

From source file:com.androidnetworking.gsonparserfactory.GsonParserFactory.java

License:Apache License

@Override
public Parser<?, RequestBody> requestBodyParser(Type type) {
    TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
    return new GsonRequestBodyParser<>(gson, adapter);
}

From source file:com.birbit.jsonapi.JsonApiDeserializer.java

License:Apache License

private T[] parseData(JsonDeserializationContext context, ParameterizedType parameterizedType,
        JsonObject jsonObject) {//from w  w w  .  j  ava2 s  .co m
    JsonElement dataElm = jsonObject.get("data");
    if (dataElm != null) {
        Type typeArg = parameterizedType.getActualTypeArguments()[0];
        if (dataElm.isJsonArray()) {
            JsonArray jsonArray = dataElm.getAsJsonArray();
            final int size = jsonArray.size();
            //                boolean isArray = typeArg instanceof GenericArrayType;
            //                if (isArray) {
            TypeToken<?> typeToken = TypeToken.get(typeArg);
            T[] result = (T[]) Array.newInstance(typeToken.getRawType().getComponentType(), size);
            for (int i = 0; i < size; i++) {
                ResourceWithIdAndType<T> resourceWithIdAndType = parseResource(jsonArray.get(i), context);
                result[i] = resourceWithIdAndType.resource;
            }
            return result;
            //                } else {
            //                    TypeToken<?> typeToken = TypeToken.get(typeArg);
            //                    T[] result = (T[]) Array.newInstance(typeToken.getRawType().getComponentType(), size);
            //                    for (int i = 0; i < size; i ++) {
            //                        ResourceWithIdAndType<T> resourceWithIdAndType = parseResource(jsonArray.get(i), context);
            //                        //noinspection unchecked
            //                        result[i] = resourceWithIdAndType.resource;
            //                    }
            //                    return result;
            //                }
        } else if (dataElm.isJsonObject()) {
            T resource = parseResource(dataElm, context).resource;
            Object[] result = (Object[]) Array.newInstance(resource.getClass(), 1);
            result[0] = resource;
            return (T[]) result;
        }
    }
    return null;
}

From source file:com.boc.lfj.httpdemo.retrofit.gson.GsonConverterFactory.java

License:Apache License

@Override
public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations,
        Retrofit retrofit) {//from w  w w  .  j  a  va  2 s . co  m
    TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
    return new GsonResponseBodyConverter<>(gson, adapter);
}

From source file:com.boc.lfj.httpdemo.retrofit.gson.GsonConverterFactory.java

License:Apache License

@Override
public Converter<?, RequestBody> requestBodyConverter(Type type, Annotation[] parameterAnnotations,
        Annotation[] methodAnnotations, Retrofit retrofit) {
    TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
    return new GsonRequestBodyConverter<>(gson, adapter);
}

From source file:com.box.lib.http.gson.GsonConverterFactory.java

License:Apache License

@Override
public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations,
        Retrofit retrofit) {/*from w w w  .j  a  v  a2s.c  om*/
    TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
    return new GsonResponseBodyExceptionConverter<>(adapter);
}

From source file:com.brady.coreframe.aosp.volley.requestimpl.GsonRequest.java

License:Apache License

@Override
protected Response<T> parseNetworkResponse(NetworkResponse response) {
    try {//from   w ww. jav  a2s. co m
        String jsonString = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
        Type type = TypeToken.get(mJavaClass).getType();
        NetResponse<T> parsedParentGSON = mGson.fromJson(jsonString,
                GsonUtils.getType(NetResponse.class, type));
        return Response.success(parsedParentGSON.result, HttpHeaderParser.parseCacheHeaders(response));
    } catch (UnsupportedEncodingException e) {
        return Response.error(new ParseError(e));
    } catch (JsonSyntaxException je) {
        return Response.error(new ParseError(je));
    } catch (Exception e) {
        return Response.error(new ParseError(e));
    }
}

From source file:com.btkelly.gnag.utils.gson.GsonConverterFactory.java

License:Apache License

@Override
public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations,
        Retrofit retrofit) {// ww w  .ja v  a 2 s. c  o m
    TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
    return new GsonResponseBodyConverter<>(adapter);
}

From source file:com.btkelly.gnag.utils.gson.GsonConverterFactory.java

License:Apache License

@Override
public Converter<?, RequestBody> requestBodyConverter(Type type, Annotation[] parameterAnnotations,
        Annotation[] methodAnnotations, Retrofit retrofit) {
    TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
    return new GsonRequestBodyConverter<>(adapter);
}