List of usage examples for com.google.gson.typeadapters RuntimeTypeAdapterFactory registerSubtype
public RuntimeTypeAdapterFactory<T> registerSubtype(Class<? extends T> type)
From source file:com.quadbits.gdxhelper.scenemodel.LWPSceneModelManager.java
License:Apache License
protected Gson getGson() { if (gson != null) { return gson; }//from w w w.j ava2 s. c om // AssetsScale types RuntimeTypeAdapterFactory<AssetsScaleBaseModel> assetsScaleTypeFactory = RuntimeTypeAdapterFactory .of(AssetsScaleBaseModel.class, "type"); for (Class<? extends AssetsScaleBaseModel> modelSubtype : gsonAssetsScaleBaseModelSubtypes) { assetsScaleTypeFactory.registerSubtype(modelSubtype); } // Actor types RuntimeTypeAdapterFactory<ActorModel> actorTypeFactory = RuntimeTypeAdapterFactory.of(ActorModel.class, "type"); for (Class<? extends ActorModel> modelSubtype : gsonActorModelSubtypes) { actorTypeFactory.registerSubtype(modelSubtype); } // Controller types RuntimeTypeAdapterFactory<ControllerModel> controllerTypeFactory = RuntimeTypeAdapterFactory .of(ControllerModel.class, "type"); for (Class<? extends ControllerModel> modelSubtype : gsonControllerModelSubtypes) { controllerTypeFactory.registerSubtype(modelSubtype); } // Create gson gson = new GsonBuilder().registerTypeAdapterFactory(assetsScaleTypeFactory) .registerTypeAdapterFactory(actorTypeFactory).registerTypeAdapterFactory(controllerTypeFactory) .setPrettyPrinting().create(); return gson; }