微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

com.google.gson.typeadapters.RuntimeTypeAdapterFactory的实例源码

项目:mazes_and_minotaurs    文件SaveAndLoadPerformer.java   
/**
 * Generates a gson that has all of the common features loaded in.
 * @return a gson object
 */
private static Gson getGson() {
    if (sGson == null) {
        GsonBuilder builder = new GsonBuilder();
        RuntimeTypeAdapterFactory<BaseClass> adapter = RuntimeTypeAdapterFactory
                .of(BaseClass.class)
                .registerSubtype(Amazon.class)
                .registerSubtype(Barbarian.class)
                .registerSubtype(Centaur.class)
                .registerSubtype(Elementalist.class)
                .registerSubtype(Hunter.class)
                .registerSubtype(Lyrist.class)
                .registerSubtype(Magician.class)
                .registerSubtype(Noble.class)
                .registerSubtype(Nymph.class)
                .registerSubtype(Priest.class)
                .registerSubtype(Sorcerer.class)
                .registerSubtype(Spearman.class)
                .registerSubtype(Thief.class);
        builder.registerTypeAdapter(PlayerCharacter.class,new CharacterSerializer());
        builder.registerTypeAdapterFactory(adapter);
        builder.setPrettyPrinting();
        sGson = builder.create();
    }
    return sGson;
}
项目:lib-poe    文件StashLoader.java   
/**
 * Reads a stash tab from file
 *
 * @param fileName The file containing stash info
 * @return Requested stash tab
 * @throws Exception
 */
public static StashTab fromFile(String fileName) throws Exception {

    RuntimeTypeAdapterFactory<Item> itemAdapter = RuntimeTypeAdapterFactory.of(Item.class,new ItemTypePredicate())
            .registerSubtype(Currency.class)
            .registerSubtype(Equipment.class)
            .registerSubtype(Gem.class)
            .registerSubtype(Map.class);

    Gson gson = new GsonBuilder()
            .enableComplexMapKeySerialization()
            .registerTypeAdapterFactory(itemAdapter)
            .registerTypeAdapter(Property.class,new PropertyDeserializer())
            .registerTypeAdapter(Property.class,new RequirementDeserializer())
            .registerTypeAdapter(Sockets.class,new SocketDeserializer())
            .registerTypeAdapter(ExplicitMod.class,new ExplicitModDeserializer())
            .registerTypeAdapter(ImplicitMod.class,new ImplicitModDeserializer()).create();

    return gson.fromJson(new JsonReader(new FileReader(fileName)),StashTab.class);
}
项目:mazes_and_minotaurs    文件CharacterSerializer.java   
private static Gson getGson() {
    if (sGson == null) {
        GsonBuilder builder = new GsonBuilder();
        RuntimeTypeAdapterFactory adapter = RuntimeTypeAdapterFactory
                .of(Equipment.class)
                .registerSubtype(Equipment.class)
                .registerSubtype(Weapon.class)
                .registerSubtype(Armor.class)
                .registerSubtype(Mythics.class);
        builder.registerTypeAdapterFactory(adapter);
        builder.setPrettyPrinting();
        sGson = builder.create();
    }
    return sGson;
}
项目:itstimetoact    文件SampleGsonTimetoAct.java   
@Override
@NonNull
protected GsonBuilder createGsonBuilder(@NonNull GsonBuilder gsonBuilder) {
    return super.createGsonBuilder(gsonBuilder)
                .registerTypeAdapterFactory(RuntimeTypeAdapterFactory.of(ActEvent.class)
                                                                     .registerSubtype(AfterUpdateEvent.class)
                                                                     .registerSubtype(OneshotEvent.class)
                                                                     .registerSubtype(StepEvent.class)
                                                                     .registerSubtype(TimeEvent.class));
}
项目:itstimetoact    文件GsonTest.java   
@Before
public void setup() {
    timetoAct = new GsonTimetoAct(RuntimeEnvironment.application) {

        @Override
        @NonNull
        protected GsonBuilder createGsonBuilder(@NonNull GsonBuilder gsonBuilder) {
            return super.createGsonBuilder(gsonBuilder)
                        .registerTypeAdapterFactory(RuntimeTypeAdapterFactory.of(ActEvent.class)
                                                                             .registerSubtype(TestEvent.class)
                                                                             .registerSubtype(SecondTestEvent.class));
        }
    };
}
项目:zeppelin    文件JupyterUtil.java   
public JupyterUtil() {
  this.cellTypeFactory = RuntimeTypeAdapterFactory.of(Cell.class,"cell_type")
      .registerSubtype(MarkdownCell.class,"markdown").registerSubtype(CodeCell.class,"code")
      .registerSubtype(RawCell.class,"raw").registerSubtype(headingCell.class,"heading");
  this.outputTypeFactory = RuntimeTypeAdapterFactory.of(Output.class,"output_type")
      .registerSubtype(ExecuteResult.class,"execute_result")
      .registerSubtype(displayData.class,"display_data").registerSubtype(Stream.class,"stream")
      .registerSubtype(Error.class,"error");
  this.markdownProcessor = new PegdownParser();
}
项目:android-urbanthings-sdk    文件UrbanThingsGson.java   
public static RuntimeTypeAdapterFactory<PlacePoint> getPlacePointAdapterFactory() {
    // NOTES: TransitStop is derived from PlacePoint.
    // API returns list of PlacePoint for GET static/stops where each can be PlacePoint or TransitStop
    // For each item in the list,field "subClasstype" is used to discriminate between these types.
    // RuntimeTypeAdapterFactory<PlacePoint> provides mechanism for polymorphic deserialization.
    RuntimeTypeAdapterFactory<PlacePoint> retVal = RuntimeTypeAdapterFactory.of(
            PlacePoint.class,"subClasstype");
    retVal.registerSubtype(TransitStop.class,"TransitStop");
    return retVal;
}
项目:android-urbanthings-sdk    文件UrbanThingsGson.java   
public static RuntimeTypeAdapterFactory<journeyLeg> getjourneyLegAdapterFactory() {
    // NOTES: TransitjourneyLeg is derived from journeyLeg.
    // journey contains ArrayList<journeyLeg> where each leg might be journeyLeg or TransitjourneyLeg
    // For each item in the list,(default) field "type" is used to discriminate between these types.
    // RuntimeTypeAdapterFactory<journeyLeg> provides mechanism for polymorphic deserialization.
    RuntimeTypeAdapterFactory<journeyLeg> retVal = RuntimeTypeAdapterFactory.of(
            journeyLeg.class);
    retVal.registerSubtype(TransitjourneyLeg.class,"TransitjourneyLeg");
    return retVal;
}
项目:myeslib    文件SampleDomainGsonFactory.java   
public SampleDomainGsonFactory() {

        final RuntimeTypeAdapterFactory<AggregateRoot> aggregateRootAdapter = 
                RuntimeTypeAdapterFactory.of(AggregateRoot.class)
                .registerSubtype(InventoryItemAggregateRoot.class,InventoryItemAggregateRoot.class.getSimpleName());

        final RuntimeTypeAdapterFactory<Command> commandAdapter = 
                RuntimeTypeAdapterFactory.of(Command.class)
                .registerSubtype(CreateInventoryItem.class,CreateInventoryItem.class.getSimpleName())
                .registerSubtype(IncreaseInventory.class,IncreaseInventory.class.getSimpleName())
                .registerSubtype(DecreaseInventory.class,DecreaseInventory.class.getSimpleName());

        final RuntimeTypeAdapterFactory<Event> eventAdapter = 
                RuntimeTypeAdapterFactory.of(Event.class)
                .registerSubtype(InventoryItemCreated.class,InventoryItemCreated.class.getSimpleName())
                .registerSubtype(InventoryIncreased.class,InventoryIncreased.class.getSimpleName())
                .registerSubtype(InventoryDecreased.class,InventoryDecreased.class.getSimpleName());   


        this.gson = new GsonBuilder().excludeFieldsWithModifiers(Modifier.TRANSIENT)
            .registerTypeAdapterFactory(aggregateRootAdapter)
            .registerTypeAdapterFactory(commandAdapter)
            .registerTypeAdapterFactory(eventAdapter)
            //.setPrettyPrinting()
            .create();

    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。