Example usage for com.google.gson.typeadapters RuntimeTypeAdapterFactory registerSubtype

List of usage examples for com.google.gson.typeadapters RuntimeTypeAdapterFactory registerSubtype

Introduction

In this page you can find the example usage for com.google.gson.typeadapters RuntimeTypeAdapterFactory registerSubtype.

Prototype

public RuntimeTypeAdapterFactory<T> registerSubtype(Class<? extends T> type, String label) 

Source Link

Document

Registers type identified by label .

Usage

From source file:io.urbanthings.api.transit.TransitApiManager.java

License:Apache License

protected final static Gson getGson() {
    if (gson == null) {
        GsonBuilder builder = new GsonBuilder();

        builder.setDateFormat("yyyy-MM-dd'T'HH:mm:ss");

        RuntimeTypeAdapterFactory<JourneyLeg> journeyLegAdapterFactory = RuntimeTypeAdapterFactory
                .of(JourneyLeg.class, "type");
        journeyLegAdapterFactory.registerSubtype(TransitJourneyLeg.class, "TransitJourneyLeg");
        builder.registerTypeAdapterFactory(journeyLegAdapterFactory);

        RuntimeTypeAdapterFactory<PlacePoint> placePointAdapterFactory = RuntimeTypeAdapterFactory
                .of(PlacePoint.class, "subClassType");
        placePointAdapterFactory.registerSubtype(TransitStop.class, "TransitStop");
        builder.registerTypeAdapterFactory(placePointAdapterFactory);

        RuntimeTypeAdapterFactory<StopCall> stopCallAdapterFactory = RuntimeTypeAdapterFactory
                .of(StopCall.class, "subClassType");
        stopCallAdapterFactory.registerSubtype(MonitoredStopCall.class, "MonitoredStopCall");
        builder.registerTypeAdapterFactory(stopCallAdapterFactory);

        gson = builder.create();/*from ww  w.  ja v a2  s  .c  o  m*/
    }
    return gson;
}

From source file:org.raspinloop.config.GsonProperties.java

License:Apache License

@SuppressWarnings("unchecked")
private <T> GsonBuilder registerImpl(Collection<HardwareProperties> objects, GsonBuilder builder,
        Class<T> type) {//from ww w .j  a v a2 s .c o m
    RuntimeTypeAdapterFactory<T> typeFactory = RuntimeTypeAdapterFactory.of(type, "java_type");

    for (HardwareProperties obj : objects) {
        if (type.isInstance(obj)) {
            typeFactory.registerSubtype((Class<? extends T>) obj.getClass(), obj.getClass().getName());
        }
    }
    return builder.registerTypeAdapterFactory(typeFactory);
}