List of usage examples for com.google.gson GsonBuilder registerTypeAdapterFactory
public GsonBuilder registerTypeAdapterFactory(TypeAdapterFactory factory)
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; }