Java Code Examples for com.google.gson.internal.bind.ReflectiveTypeAdapterFactory
The following examples show how to use
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.
These examples are extracted from open source projects.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source Project: lastaflute Author: lastaflute File: GsonJsonEngine.java License: Apache License 2.0 | 5 votes |
protected void switchFactories(Gson newGson) { final Field factoriesField = DfReflectionUtil.getWholeField(newGson.getClass(), "factories"); @SuppressWarnings("unchecked") final List<Object> factories = (List<Object>) DfReflectionUtil.getValueForcedly(factoriesField, newGson); final List<Object> filtered = new ArrayList<Object>(); for (Object factory : factories) { if (factory instanceof ReflectiveTypeAdapterFactory) { // switched, only one time filtered.add(createReflectiveTypeAdapterFactory(newGson, factory)); } else { filtered.add(factory); } } DfReflectionUtil.setValueForcedly(factoriesField, newGson, Collections.unmodifiableList(filtered)); }
Example #2
Source Project: MiBandDecompiled Author: vishnudevk File: Gson.java License: Apache License 2.0 | 4 votes |
Gson(Excluder excluder, FieldNamingStrategy fieldnamingstrategy, Map map, boolean flag, boolean flag1, boolean flag2, boolean flag3, boolean flag4, boolean flag5, LongSerializationPolicy longserializationpolicy, List list) { e = new ThreadLocal(); f = Collections.synchronizedMap(new HashMap()); b = new g(this); c = new h(this); h = new ConstructorConstructor(map); i = flag; k = flag2; j = flag3; l = flag4; ArrayList arraylist = new ArrayList(); arraylist.add(TypeAdapters.JSON_ELEMENT_FACTORY); arraylist.add(ObjectTypeAdapter.FACTORY); arraylist.add(excluder); arraylist.addAll(list); arraylist.add(TypeAdapters.STRING_FACTORY); arraylist.add(TypeAdapters.INTEGER_FACTORY); arraylist.add(TypeAdapters.BOOLEAN_FACTORY); arraylist.add(TypeAdapters.BYTE_FACTORY); arraylist.add(TypeAdapters.SHORT_FACTORY); arraylist.add(TypeAdapters.newFactory(Long.TYPE, java/lang/Long, a(longserializationpolicy))); arraylist.add(TypeAdapters.newFactory(Double.TYPE, java/lang/Double, a(flag5))); arraylist.add(TypeAdapters.newFactory(Float.TYPE, java/lang/Float, b(flag5))); arraylist.add(TypeAdapters.NUMBER_FACTORY); arraylist.add(TypeAdapters.CHARACTER_FACTORY); arraylist.add(TypeAdapters.STRING_BUILDER_FACTORY); arraylist.add(TypeAdapters.STRING_BUFFER_FACTORY); arraylist.add(TypeAdapters.newFactory(java/math/BigDecimal, TypeAdapters.BIG_DECIMAL)); arraylist.add(TypeAdapters.newFactory(java/math/BigInteger, TypeAdapters.BIG_INTEGER)); arraylist.add(TypeAdapters.URL_FACTORY); arraylist.add(TypeAdapters.URI_FACTORY); arraylist.add(TypeAdapters.UUID_FACTORY); arraylist.add(TypeAdapters.LOCALE_FACTORY); arraylist.add(TypeAdapters.INET_ADDRESS_FACTORY); arraylist.add(TypeAdapters.BIT_SET_FACTORY); arraylist.add(DateTypeAdapter.FACTORY); arraylist.add(TypeAdapters.CALENDAR_FACTORY); arraylist.add(TimeTypeAdapter.FACTORY); arraylist.add(SqlDateTypeAdapter.FACTORY); arraylist.add(TypeAdapters.TIMESTAMP_FACTORY); arraylist.add(ArrayTypeAdapter.FACTORY); arraylist.add(TypeAdapters.ENUM_FACTORY); arraylist.add(TypeAdapters.CLASS_FACTORY); arraylist.add(new CollectionTypeAdapterFactory(h)); arraylist.add(new MapTypeAdapterFactory(h, flag1)); arraylist.add(new ReflectiveTypeAdapterFactory(h, fieldnamingstrategy, excluder)); g = Collections.unmodifiableList(arraylist); }
Example #3
Source Project: gson Author: google File: Gson.java License: Apache License 2.0 | 4 votes |
Gson(Excluder excluder, FieldNamingStrategy fieldNamingStrategy, Map<Type, InstanceCreator<?>> instanceCreators, boolean serializeNulls, boolean complexMapKeySerialization, boolean generateNonExecutableGson, boolean htmlSafe, boolean prettyPrinting, boolean lenient, boolean serializeSpecialFloatingPointValues, LongSerializationPolicy longSerializationPolicy, String datePattern, int dateStyle, int timeStyle, List<TypeAdapterFactory> builderFactories, List<TypeAdapterFactory> builderHierarchyFactories, List<TypeAdapterFactory> factoriesToBeAdded) { this.excluder = excluder; this.fieldNamingStrategy = fieldNamingStrategy; this.instanceCreators = instanceCreators; this.constructorConstructor = new ConstructorConstructor(instanceCreators); this.serializeNulls = serializeNulls; this.complexMapKeySerialization = complexMapKeySerialization; this.generateNonExecutableJson = generateNonExecutableGson; this.htmlSafe = htmlSafe; this.prettyPrinting = prettyPrinting; this.lenient = lenient; this.serializeSpecialFloatingPointValues = serializeSpecialFloatingPointValues; this.longSerializationPolicy = longSerializationPolicy; this.datePattern = datePattern; this.dateStyle = dateStyle; this.timeStyle = timeStyle; this.builderFactories = builderFactories; this.builderHierarchyFactories = builderHierarchyFactories; List<TypeAdapterFactory> factories = new ArrayList<TypeAdapterFactory>(); // built-in type adapters that cannot be overridden factories.add(TypeAdapters.JSON_ELEMENT_FACTORY); factories.add(ObjectTypeAdapter.FACTORY); // the excluder must precede all adapters that handle user-defined types factories.add(excluder); // users' type adapters factories.addAll(factoriesToBeAdded); // type adapters for basic platform types factories.add(TypeAdapters.STRING_FACTORY); factories.add(TypeAdapters.INTEGER_FACTORY); factories.add(TypeAdapters.BOOLEAN_FACTORY); factories.add(TypeAdapters.BYTE_FACTORY); factories.add(TypeAdapters.SHORT_FACTORY); TypeAdapter<Number> longAdapter = longAdapter(longSerializationPolicy); factories.add(TypeAdapters.newFactory(long.class, Long.class, longAdapter)); factories.add(TypeAdapters.newFactory(double.class, Double.class, doubleAdapter(serializeSpecialFloatingPointValues))); factories.add(TypeAdapters.newFactory(float.class, Float.class, floatAdapter(serializeSpecialFloatingPointValues))); factories.add(TypeAdapters.NUMBER_FACTORY); factories.add(TypeAdapters.ATOMIC_INTEGER_FACTORY); factories.add(TypeAdapters.ATOMIC_BOOLEAN_FACTORY); factories.add(TypeAdapters.newFactory(AtomicLong.class, atomicLongAdapter(longAdapter))); factories.add(TypeAdapters.newFactory(AtomicLongArray.class, atomicLongArrayAdapter(longAdapter))); factories.add(TypeAdapters.ATOMIC_INTEGER_ARRAY_FACTORY); factories.add(TypeAdapters.CHARACTER_FACTORY); factories.add(TypeAdapters.STRING_BUILDER_FACTORY); factories.add(TypeAdapters.STRING_BUFFER_FACTORY); factories.add(TypeAdapters.newFactory(BigDecimal.class, TypeAdapters.BIG_DECIMAL)); factories.add(TypeAdapters.newFactory(BigInteger.class, TypeAdapters.BIG_INTEGER)); factories.add(TypeAdapters.URL_FACTORY); factories.add(TypeAdapters.URI_FACTORY); factories.add(TypeAdapters.UUID_FACTORY); factories.add(TypeAdapters.CURRENCY_FACTORY); factories.add(TypeAdapters.LOCALE_FACTORY); factories.add(TypeAdapters.INET_ADDRESS_FACTORY); factories.add(TypeAdapters.BIT_SET_FACTORY); factories.add(DateTypeAdapter.FACTORY); factories.add(TypeAdapters.CALENDAR_FACTORY); factories.add(TimeTypeAdapter.FACTORY); factories.add(SqlDateTypeAdapter.FACTORY); factories.add(TypeAdapters.TIMESTAMP_FACTORY); factories.add(ArrayTypeAdapter.FACTORY); factories.add(TypeAdapters.CLASS_FACTORY); // type adapters for composite and user-defined types factories.add(new CollectionTypeAdapterFactory(constructorConstructor)); factories.add(new MapTypeAdapterFactory(constructorConstructor, complexMapKeySerialization)); this.jsonAdapterFactory = new JsonAdapterAnnotationTypeAdapterFactory(constructorConstructor); factories.add(jsonAdapterFactory); factories.add(TypeAdapters.ENUM_FACTORY); factories.add(new ReflectiveTypeAdapterFactory( constructorConstructor, fieldNamingStrategy, excluder, jsonAdapterFactory)); this.factories = Collections.unmodifiableList(factories); }
Example #4
Source Project: framework Author: Odoo-mobile File: Gson.java License: GNU Affero General Public License v3.0 | 4 votes |
Gson(final Excluder excluder, final FieldNamingStrategy fieldNamingPolicy, final Map<Type, InstanceCreator<?>> instanceCreators, boolean serializeNulls, boolean complexMapKeySerialization, boolean generateNonExecutableGson, boolean htmlSafe, boolean prettyPrinting, boolean serializeSpecialFloatingPointValues, LongSerializationPolicy longSerializationPolicy, List<TypeAdapterFactory> typeAdapterFactories) { this.constructorConstructor = new ConstructorConstructor(instanceCreators); this.serializeNulls = serializeNulls; this.generateNonExecutableJson = generateNonExecutableGson; this.htmlSafe = htmlSafe; this.prettyPrinting = prettyPrinting; List<TypeAdapterFactory> factories = new ArrayList<TypeAdapterFactory>(); // built-in type adapters that cannot be overridden factories.add(TypeAdapters.JSON_ELEMENT_FACTORY); factories.add(ObjectTypeAdapter.FACTORY); // the excluder must precede all adapters that handle user-defined types factories.add(excluder); // user's type adapters factories.addAll(typeAdapterFactories); // type adapters for basic platform types factories.add(TypeAdapters.STRING_FACTORY); factories.add(TypeAdapters.INTEGER_FACTORY); factories.add(TypeAdapters.BOOLEAN_FACTORY); factories.add(TypeAdapters.BYTE_FACTORY); factories.add(TypeAdapters.SHORT_FACTORY); factories.add(TypeAdapters.newFactory(long.class, Long.class, longAdapter(longSerializationPolicy))); factories.add(TypeAdapters.newFactory(double.class, Double.class, doubleAdapter(serializeSpecialFloatingPointValues))); factories.add(TypeAdapters.newFactory(float.class, Float.class, floatAdapter(serializeSpecialFloatingPointValues))); factories.add(TypeAdapters.NUMBER_FACTORY); factories.add(TypeAdapters.CHARACTER_FACTORY); factories.add(TypeAdapters.STRING_BUILDER_FACTORY); factories.add(TypeAdapters.STRING_BUFFER_FACTORY); factories.add(TypeAdapters.newFactory(BigDecimal.class, TypeAdapters.BIG_DECIMAL)); factories.add(TypeAdapters.newFactory(BigInteger.class, TypeAdapters.BIG_INTEGER)); factories.add(TypeAdapters.URL_FACTORY); factories.add(TypeAdapters.URI_FACTORY); factories.add(TypeAdapters.UUID_FACTORY); factories.add(TypeAdapters.LOCALE_FACTORY); factories.add(TypeAdapters.INET_ADDRESS_FACTORY); factories.add(TypeAdapters.BIT_SET_FACTORY); factories.add(DateTypeAdapter.FACTORY); factories.add(TypeAdapters.CALENDAR_FACTORY); factories.add(TimeTypeAdapter.FACTORY); factories.add(SqlDateTypeAdapter.FACTORY); factories.add(TypeAdapters.TIMESTAMP_FACTORY); factories.add(ArrayTypeAdapter.FACTORY); factories.add(TypeAdapters.CLASS_FACTORY); // type adapters for composite and user-defined types factories.add(new CollectionTypeAdapterFactory(constructorConstructor)); factories.add(new MapTypeAdapterFactory(constructorConstructor, complexMapKeySerialization)); factories.add(new JsonAdapterAnnotationTypeAdapterFactory(constructorConstructor)); factories.add(TypeAdapters.ENUM_FACTORY); factories.add(new ReflectiveTypeAdapterFactory( constructorConstructor, fieldNamingPolicy, excluder)); this.factories = Collections.unmodifiableList(factories); }
Example #5
Source Project: proguard Author: Guardsquare File: _GsonUtil.java License: GNU General Public License v2.0 | 2 votes |
/** * Determines whether a given type adapter is a custom type adapter, i.e. * a type adapter that is registered by the user of the Gson API and not * the GSON reflection based type adapter or the optimized type adapter * injected by DexGuard. */ private static boolean isCustomTypeAdapter(TypeAdapter declaredTypeAdapter) { return !(declaredTypeAdapter instanceof _OptimizedTypeAdapter) && !(declaredTypeAdapter instanceof ReflectiveTypeAdapterFactory.Adapter); }