List of usage examples for com.google.gson.typeadapters RuntimeTypeAdapterFactory registerSubtype
public RuntimeTypeAdapterFactory<T> registerSubtype(Class<? extends T> type, String label)
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); }