Example usage for com.google.gson GsonBuilder registerTypeAdapterFactory

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

Introduction

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

Prototype

public GsonBuilder registerTypeAdapterFactory(TypeAdapterFactory factory) 

Source Link

Document

Register a factory for type adapters.

Usage

From source file:com.vaadin.addon.charts.model.AbstractConfigurationObject.java

/**
 * Returns default GSON builder for configuration serializer.
 *//* w  w  w  . ja v a2 s .c  o  m*/
public static GsonBuilder createGsonBuilder() {
    GsonBuilder builder = new GsonBuilder();
    // uncomment if you wish to debug generated json
    builder.setPrettyPrinting();
    builder.registerTypeHierarchyAdapter(ChartEnum.class, new ChartEnumSerializer());
    builder.registerTypeHierarchyAdapter(SolidColor.class, new SolidColorSerializer());
    builder.registerTypeHierarchyAdapter(AxisList.class, new AxisListSerializer());
    builder.registerTypeHierarchyAdapter(PaneList.class, new PaneListSerializer());
    builder.registerTypeAdapter(ContainerDataSeries.class, new ContainerDataSeriesSerializer());
    builder.registerTypeAdapterFactory(new DataSeriesItemTypeAdapterFactory());
    builder.registerTypeAdapterFactory(new AbstractSeriesTypeAdapterFactory());
    builder.registerTypeAdapterFactory(new TitleTypeAdapterFactory());
    return builder;
}

From source file:dk.ilios.spanner.Spanner.java

License:Apache License

public void start() {
    try {/*from w  w  w  .j  av a2  s  .c o m*/
        callback.onStart();
        benchmarkConfig = benchmarkClass.getConfiguration();
        File baseline = benchmarkConfig.getBaseLineFile();

        ImmutableSet<Instrument> instruments = getInstruments(benchmarkConfig);

        int poolSize = benchmarkConfig.getNoBenchmarkThreads();
        ListeningExecutorService executor = MoreExecutors
                .listeningDecorator(Executors.newFixedThreadPool(poolSize));

        StdOut stdOut = new AndroidStdOut();
        Run runInfo = new Run.Builder(UUID.randomUUID()).label("Spanner benchmark test")
                .startTime(Instant.now()).configuration(benchmarkConfig).build();

        ExperimentSelector experimentSelector = new AndroidExperimentSelector(benchmarkClass, instruments);

        // GSON config
        GsonBuilder gsonBuilder = new GsonBuilder().setExclusionStrategies(new AnnotationExclusionStrategy());
        gsonBuilder
                .registerTypeAdapterFactory(TypeAdapters.newFactory(Instant.class, new InstantTypeAdapter()));
        Gson gson = gsonBuilder.create();

        // Configure baseline data
        Trial[] baselineData;
        if (baseline != null) {
            BufferedReader br = null;
            try {
                br = new BufferedReader(new FileReader(baseline));
                baselineData = gson.fromJson(br, Trial[].class);
                br.close();
            } catch (java.io.IOException e) {
                throw new RuntimeException(e);
            } finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (IOException ignored) {
                    }
                }
            }
        } else {
            baselineData = new Trial[0];
        }

        // Configure ResultProcessors
        Set<ResultProcessor> processors = new HashSet<>();
        if (benchmarkConfig.getResultsFile() != null) {
            OutputFileDumper dumper = new OutputFileDumper(gson, benchmarkConfig.getResultsFile());
            processors.add(dumper);
        }
        if (benchmarkConfig.isUploadResults()) {
            HttpUploader uploader = new HttpUploader(stdOut, gson, benchmarkConfig);
            processors.add(uploader);
        }
        processors.addAll(benchmarkConfig.getResultProcessors());
        ImmutableSet<ResultProcessor> resultProcessors = ImmutableSet.copyOf(processors);

        // Configure runner
        SpannerRun run = new ExperimentingSpannerRun(benchmarkConfig, stdOut, runInfo, resultProcessors,
                experimentSelector, executor, baselineData, callback);

        // Run benchmark
        run.run();
        callback.onComplete();
    } catch (Exception e) {
        // Report all exceptions
        callback.onError(e);
    }
}

From source file:edu.mayo.cts2.framework.core.json.JsonConverter.java

License:Open Source License

/**
 * Builds the gson.//from   w ww .ja va  2 s  .  c  om
 *
 * @return the gson
 */
protected Gson buildGson() {
    GsonBuilder gson = new GsonBuilder();

    gson.setDateFormat(ISO_DATE_FORMAT);

    gson.setExclusionStrategies(new ExclusionStrategy() {

        @Override
        public boolean shouldSkipField(FieldAttributes f) {
            return f.getName().equals(CHOICE_VALUE);
        }

        @Override
        public boolean shouldSkipClass(Class<?> clazz) {
            return false;
        }

    });

    gson.registerTypeAdapter(List.class, new EmptyCollectionSerializer());
    gson.registerTypeAdapter(TsAnyType.class, new TsAnyTypeSerializer());
    gson.registerTypeAdapter(Date.class, new DateTypeAdapter());
    gson.registerTypeAdapterFactory(new ChangeableTypeAdapterFactory());
    gson.registerTypeAdapterFactory(new ChangeableResourceTypeAdapterFactory());

    gson.setFieldNamingStrategy(new FieldNamingStrategy() {

        @Override
        public String translateName(Field field) {
            String fieldName = field.getName();

            char[] array = fieldName.toCharArray();

            if (array[0] == '_') {
                array = ArrayUtils.remove(array, 0);
            }

            String name = new String(array);
            if (name.endsWith(LIST_SUFFIX)) {
                name = StringUtils.removeEnd(name, LIST_SUFFIX);
            }

            return name;
        }

    });

    return gson.create();
}

From source file:edu.oregonstate.eecs.mcplan.domains.cosmic.CosmicGson.java

License:Open Source License

/**
 * Convenience method to register appropriate type adapters for Cosmic.
 * @param builder/*ww  w  .j av a  2 s. co  m*/
 * @return
 */
public static Gson createGson(final CosmicParameters params, final GsonBuilder builder) {
    builder.registerTypeAdapter(MWNumericArray.class, new MWNumericArrayJsonSerializer());
    builder.registerTypeAdapterFactory(new CosmicState.GsonSerializer());
    builder.registerTypeAdapterFactory(new CosmicAction.GsonSerializer(params));
    return builder.create();
}

From source file:io.barracks.ota.client.UpdateCheckService.java

License:Apache License

/**
 * This method provides a {@link TypeAdapterFactory} - the service itself - for the {@link GsonBuilder}.
 *
 * @param builder The service's basic {@link GsonBuilder} which will be updated in this method.
 * @return The updated {@link GsonBuilder}
 *//*from  w  ww  .ja va2  s  .c  om*/
GsonBuilder setUpGsonBuilder(GsonBuilder builder) {
    return builder.registerTypeAdapterFactory(this);
}

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   w  ww  .j  ava2s.com
    }
    return gson;
}

From source file:jetbrains.buildServer.sharedResources.server.report.UsedResourcesSerializer.java

License:Apache License

public List<UsedResource> read(@NotNull final Reader reader) {
    final GsonBuilder builder = new GsonBuilder();
    builder.setFieldNamingStrategy(STRATEGY);
    builder.registerTypeAdapter(Resource.class,
            (InstanceCreator<Resource>) type -> ResourceFactory.newInfiniteResource("", "", "", true));
    builder.registerTypeAdapter(Lock.class, (InstanceCreator<Lock>) type -> new Lock("", LockType.READ, ""));
    builder.registerTypeAdapterFactory(MY_TYPE_ADAPTER_FACTORY);
    return builder.setPrettyPrinting().create().fromJson(reader, new TypeToken<List<UsedResource>>() {
    }.getType());/*from  w  w w .j  a  va2  s .c o m*/
}

From source file:net.ftb.workers.AuthlibHelper.java

License:Apache License

private static String encode(Map<String, Object> m) {
    try {/*from  w  ww  .java2s . c  om*/
        Gson gson;
        final GsonBuilder builder = new GsonBuilder();
        builder.registerTypeAdapterFactory(new EnumAdaptorFactory());
        builder.registerTypeAdapter(Date.class, new DateAdapter());
        builder.registerTypeAdapter(File.class, new FileAdapter());
        builder.enableComplexMapKeySerialization();
        builder.setPrettyPrinting();
        gson = builder.create();
        return gson.toJson(m);
    } catch (Exception e) {
        Logger.logError("Error encoding Authlib JSON", e);
        return null;
    }

}

From source file:net.minecraft.client.versionRqst.java

public versionRqst() {
    GsonBuilder builder = new GsonBuilder();
    builder.registerTypeAdapterFactory(new LowerCaseEnumTypeAdapterFactory());
    builder.registerTypeAdapter(Date.class, new DateTypeAdapter());
    builder.enableComplexMapKeySerialization();
    builder.setPrettyPrinting();/*from w ww  .  j ava  2s . com*/
    this.gson = builder.create();
}

From source file:net.segoia.event.eventbus.config.json.EventBusJsonConfigLoader.java

License:Apache License

public static EventBusJsonConfig load(Reader reader) {
    GsonBuilder gb = new GsonBuilder();

    gb.registerTypeAdapter(Condition.class, new JsonDeserializer<Condition>() {

        @Override//from w ww. j a v  a2 s.  c  o m
        public Condition deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
                throws JsonParseException {
            JsonObject jo = json.getAsJsonObject();
            JsonElement conditionType = jo.get("ctype");
            String ctype = null;
            if (conditionType != null) {
                ctype = conditionType.getAsString().trim();
                if ("".equals(ctype)) {
                    ctype = null;
                }
            }
            JsonDeserializer<?> deserializerForType = jsonDeserializers.get(ctype);
            if (deserializerForType == null) {
                throw new JsonParseException("No deserializer defined for condition type " + ctype);
            }
            return (Condition) deserializerForType.deserialize(json, typeOfT, context);
        }
    });

    gb.registerTypeAdapterFactory(new TypeAdapterFactory() {

        @Override
        public <T> TypeAdapter<T> create(final Gson gson, final TypeToken<T> type) {
            final TypeAdapter<T> delegateAdapter = gson.getDelegateAdapter(this, type);

            TypeAdapter<T> typeAdapter = new TypeAdapter<T>() {

                @Override
                public void write(JsonWriter out, T value) throws IOException {
                    delegateAdapter.write(out, value);
                }

                @Override
                public T read(JsonReader in) throws IOException {
                    JsonElement value = Streams.parse(in);

                    if (value.isJsonNull()) {
                        return null;
                    }

                    if (!value.isJsonObject()) {
                        return delegateAdapter.fromJsonTree(value);
                    }
                    // System.out.println(value+" "+value.getClass());
                    JsonObject jo = value.getAsJsonObject();

                    JsonElement cnameElem = jo.remove("className");

                    if (cnameElem != null) {
                        String cname = cnameElem.getAsString();

                        try {
                            // System.out.println("using clazz " + cname);
                            return (T) gson.fromJson(value, Class.forName(cname));
                        } catch (ClassNotFoundException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                            return null;
                        }
                    } else {
                        return delegateAdapter.fromJsonTree(value);
                    }
                }
            };

            return typeAdapter;

        }
    });

    final Gson gson = gb.create();

    EventBusJsonConfig ebusConfig = gson.fromJson(reader, EventBusJsonConfig.class);

    return ebusConfig;
}