Example usage for com.google.gson GsonBuilder registerTypeAdapter

List of usage examples for com.google.gson GsonBuilder registerTypeAdapter

Introduction

In this page you can find the example usage for com.google.gson GsonBuilder registerTypeAdapter.

Prototype

@SuppressWarnings({ "unchecked", "rawtypes" })
public GsonBuilder registerTypeAdapter(Type type, Object typeAdapter) 

Source Link

Document

Configures Gson for custom serialization or deserialization.

Usage

From source file:com.hyperaware.conference.eventmobi.parser.gson.GsonParser.java

License:Open Source License

@Override
public T parse(InputStream is) throws ParseException {
    try {// w  ww.  j a va 2s. co m
        final GsonBuilder gb = new GsonBuilder();
        // Eventmobi serializes booleans as integer strings!  Yuck!
        final BooleanDeserializer bs = new BooleanDeserializer();
        gb.registerTypeAdapter(boolean.class, bs);
        gb.registerTypeAdapter(Boolean.class, bs);
        final Gson gson = gb.create();
        final T response = gson.fromJson(new InputStreamReader(is, GsonParserConstants.CHARSET), clazz);
        if (response != null) {
            return response;
        } else {
            throw new ParseException("Reader at EOF");
        }
    } catch (Exception e) {
        throw new ParseException(e);
    }
}

From source file:com.ibasco.agql.protocols.supercell.coc.webapi.interfaces.CocLeagues.java

License:Open Source License

/**
 * {@inheritDoc}//from  w ww  . j  a  v a 2  s.c o  m
 */
@Override
protected void configureBuilder(GsonBuilder builder) {
    super.configureBuilder(builder);
    builder.registerTypeAdapter(CocLeagueSeason.class, new CocLeagueSeasonDeserializer());
}

From source file:com.ibasco.agql.protocols.valve.csgo.webapi.interfaces.CsgoServers.java

License:Open Source License

@Override
protected void configureBuilder(GsonBuilder builder) {
    builder.registerTypeAdapter(new TypeToken<List<CsgoDatacenterStatus>>() {
    }.getType(), new CsgoDatacenterStatusDeserializer());
}

From source file:com.ibasco.agql.protocols.valve.dota2.webapi.interfaces.Dota2Match.java

License:Open Source License

@Override
protected void configureBuilder(GsonBuilder builder) {
    log.info("Registering Type Adapter");
    builder.registerTypeAdapter(Dota2MatchTeamInfo.class, new Dota2TeamInfoAdapter());
}

From source file:com.ibasco.agql.protocols.valve.steam.webapi.interfaces.SteamEconomy.java

License:Open Source License

@Override
protected void configureBuilder(GsonBuilder builder) {
    builder.registerTypeAdapter(new TypeToken<Map<String, SteamAssetClassInfo>>() {
    }.getType(), new SteamAssetClassInfoMapDeserializer());
    builder.registerTypeAdapter(SteamAssetDescription.class, new SteamAssetDescDeserializer());
}

From source file:com.ibasco.agql.protocols.valve.steam.webapi.interfaces.SteamStorefront.java

License:Open Source License

@Override
protected void configureBuilder(GsonBuilder builder) {
    builder.registerTypeAdapter(StoreAppPcRequirements.class, new StoreAppPcRequirementsDeserializer());
}

From source file:com.ibm.common.activitystreams.internal.GsonWrapper.java

License:Apache License

/**
 * Method initGsonBuilder./*from  w ww. j  a  va  2 s . c  o  m*/
 * @param builder Builder
        
 * @return GsonBuilder */
private static GsonBuilder initGsonBuilder(Builder builder, Schema schema, ASObjectAdapter base,
        Iterable<AdapterEntry<?>> adapters) {

    GsonBuilder gson = new GsonBuilder()
            .registerTypeHierarchyAdapter(TypeValue.class, new TypeValueAdapter(schema))
            .registerTypeHierarchyAdapter(LinkValue.class, new LinkValueAdapter(schema))
            .registerTypeHierarchyAdapter(Iterable.class, ITERABLE)
            .registerTypeHierarchyAdapter(ASObject.class, base)
            .registerTypeHierarchyAdapter(Collection.class, base)
            .registerTypeHierarchyAdapter(Activity.class, base).registerTypeHierarchyAdapter(NLV.class, NLV)
            .registerTypeHierarchyAdapter(ActionsValue.class, ACTIONS)
            .registerTypeHierarchyAdapter(Optional.class, OPTIONAL)
            .registerTypeHierarchyAdapter(Range.class, RANGE).registerTypeHierarchyAdapter(Table.class, TABLE)
            .registerTypeHierarchyAdapter(LazilyParsedNumber.class, NUMBER)
            .registerTypeHierarchyAdapter(LazilyParsedNumberComparable.class, NUMBER)
            .registerTypeHierarchyAdapter(ReadableDuration.class, DURATION)
            .registerTypeHierarchyAdapter(ReadablePeriod.class, PERIOD)
            .registerTypeHierarchyAdapter(ReadableInterval.class, INTERVAL)
            .registerTypeAdapter(Activity.Status.class, forEnum(Activity.Status.class, Activity.Status.OTHER))
            .registerTypeAdapter(Date.class, DATE).registerTypeAdapter(DateTime.class, DATETIME)
            .registerTypeAdapter(MediaType.class, MIMETYPE)
            .registerTypeHierarchyAdapter(Multimap.class, MULTIMAP);

    for (AdapterEntry<?> entry : adapters) {
        if (entry.hier)
            gson.registerTypeHierarchyAdapter(entry.type, entry.adapter != null ? entry.adapter : base);
        else
            gson.registerTypeAdapter(entry.type, entry.adapter != null ? entry.adapter : base);
    }

    return gson;

}

From source file:com.ibm.csync.internals.websocket.CSTransport.java

License:Open Source License

public CSTransport(WebSocketConnection webSocketConnection) {
    this.socketConnection = webSocketConnection;

    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(CSValue.class, new CSValueDeserializer());
    gson = gsonBuilder.create();//  w ww  .jav a2  s.c  o  m
}

From source file:com.ibm.g11n.pipeline.client.impl.ServiceClientImpl.java

License:Open Source License

/**
 * Creates a new Gson object//from www .j  a v  a  2 s .com
 * 
 * @param className A class name used for serialization/deserialization.
 *                  <p>Note: This implementation does not use this argument
 *                  for now. If we need different kinds of type adapters
 *                  depending on class, the implementation might be updated
 *                  to set up appropriate set of type adapters.
 * @return  A Gson object
 */
private static Gson createGson(String className) {
    GsonBuilder builder = new GsonBuilder();

    // ISO8601 date format support
    builder.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");

    builder.registerTypeAdapter(TranslationStatus.class, new TranslationStatusAdapter());

    builder.registerTypeAdapter(new TypeToken<EnumMap<TranslationStatus, Integer>>() {
    }.getType(), new EnumMapInstanceCreator<TranslationStatus, Integer>(TranslationStatus.class));

    builder.registerTypeAdapterFactory(new NullMapValueTypeAdapterFactory());

    return builder.create();
}

From source file:com.ibm.watson.developer_cloud.util.GsonSingleton.java

License:Open Source License

private static void registerTypeAdapters(GsonBuilder builder) {
    // Date serializer and deserializer
    builder.registerTypeAdapter(Date.class, new DateDeserializer());
    builder.registerTypeAdapter(Date.class, new DateSerializer());
}