package com.google.gson; import com.airbnb.deeplinkdispatch.UrlTreeKt; import com.google.gson.internal.ConstructorConstructor; import com.google.gson.internal.Excluder; import com.google.gson.internal.Primitives; import com.google.gson.internal.Streams; import com.google.gson.internal.bind.ArrayTypeAdapter; import com.google.gson.internal.bind.CollectionTypeAdapterFactory; import com.google.gson.internal.bind.DateTypeAdapter; import com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory; import com.google.gson.internal.bind.JsonTreeReader; import com.google.gson.internal.bind.JsonTreeWriter; import com.google.gson.internal.bind.MapTypeAdapterFactory; import com.google.gson.internal.bind.NumberTypeAdapter; import com.google.gson.internal.bind.ObjectTypeAdapter; import com.google.gson.internal.bind.ReflectiveTypeAdapterFactory; import com.google.gson.internal.bind.TypeAdapters; import com.google.gson.internal.sql.SqlTypesSupport; import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; import com.google.gson.stream.MalformedJsonException; import java.io.EOFException; import java.io.IOException; import java.io.Reader; import java.io.StringReader; import java.io.StringWriter; import java.io.Writer; import java.lang.reflect.Type; import java.math.BigDecimal; import java.math.BigInteger; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLongArray; import o.Vip; /* loaded from: classes.dex */ public class Gson { public static final boolean DEFAULT_COMPLEX_MAP_KEYS = false; public static final boolean DEFAULT_ESCAPE_HTML = true; public static final boolean DEFAULT_JSON_NON_EXECUTABLE = false; public static final boolean DEFAULT_LENIENT = false; public static final boolean DEFAULT_PRETTY_PRINT = false; public static final boolean DEFAULT_SERIALIZE_NULLS = false; public static final boolean DEFAULT_SPECIALIZE_FLOAT_VALUES = false; public static final String JSON_NON_EXECUTABLE_PREFIX = ")]}'\n"; public static final TypeToken NULL_KEY_SURROGATE = TypeToken.get(Object.class); public final List builderFactories; public final List builderHierarchyFactories; public final ThreadLocal, FutureTypeAdapter>> calls; public final boolean complexMapKeySerialization; public final ConstructorConstructor constructorConstructor; public final String datePattern; public final int dateStyle; public final Excluder excluder; public final List factories; public final FieldNamingStrategy fieldNamingStrategy; public final boolean generateNonExecutableJson; public final boolean htmlSafe; public final Map> instanceCreators; public final JsonAdapterAnnotationTypeAdapterFactory jsonAdapterFactory; public final boolean lenient; public final LongSerializationPolicy longSerializationPolicy; public final ToNumberStrategy numberToNumberStrategy; public final ToNumberStrategy objectToNumberStrategy; public final boolean prettyPrinting; public final boolean serializeNulls; public final boolean serializeSpecialFloatingPointValues; public final int timeStyle; public final Map, TypeAdapter> typeTokenCache; public Gson() { this(Excluder.DEFAULT, FieldNamingPolicy.IDENTITY, Collections.emptyMap(), false, false, false, true, false, false, false, LongSerializationPolicy.DEFAULT, null, 2, 2, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), ToNumberPolicy.DOUBLE, ToNumberPolicy.LAZILY_PARSED_NUMBER); } /* JADX INFO: Access modifiers changed from: package-private */ public Gson(Excluder excluder, FieldNamingStrategy fieldNamingStrategy, Map> map, boolean z, boolean z2, boolean z3, boolean z4, boolean z5, boolean z6, boolean z7, LongSerializationPolicy longSerializationPolicy, String str, int i, int i2, List list, List list2, List list3, ToNumberStrategy toNumberStrategy, ToNumberStrategy toNumberStrategy2) { ArrayList arrayList = new ArrayList(list3); arrayList.add(new Vip()); this.calls = new ThreadLocal<>(); this.typeTokenCache = new ConcurrentHashMap(); this.excluder = excluder; this.fieldNamingStrategy = fieldNamingStrategy; this.instanceCreators = map; ConstructorConstructor constructorConstructor = new ConstructorConstructor(map); this.constructorConstructor = constructorConstructor; this.serializeNulls = z; this.complexMapKeySerialization = z2; this.generateNonExecutableJson = z3; this.htmlSafe = z4; this.prettyPrinting = z5; this.lenient = z6; this.serializeSpecialFloatingPointValues = z7; this.longSerializationPolicy = longSerializationPolicy; this.datePattern = str; this.dateStyle = i; this.timeStyle = i2; this.builderFactories = list; this.builderHierarchyFactories = list2; this.objectToNumberStrategy = toNumberStrategy; this.numberToNumberStrategy = toNumberStrategy2; ArrayList arrayList2 = new ArrayList(); arrayList2.add(TypeAdapters.JSON_ELEMENT_FACTORY); arrayList2.add(ObjectTypeAdapter.getFactory(toNumberStrategy)); arrayList2.add(excluder); arrayList2.addAll(arrayList); arrayList2.add(TypeAdapters.STRING_FACTORY); arrayList2.add(TypeAdapters.INTEGER_FACTORY); arrayList2.add(TypeAdapters.BOOLEAN_FACTORY); arrayList2.add(TypeAdapters.BYTE_FACTORY); arrayList2.add(TypeAdapters.SHORT_FACTORY); TypeAdapter longAdapter = longAdapter(longSerializationPolicy); arrayList2.add(TypeAdapters.newFactory(Long.TYPE, Long.class, longAdapter)); arrayList2.add(TypeAdapters.newFactory(Double.TYPE, Double.class, doubleAdapter(z7))); arrayList2.add(TypeAdapters.newFactory(Float.TYPE, Float.class, floatAdapter(z7))); arrayList2.add(NumberTypeAdapter.getFactory(toNumberStrategy2)); arrayList2.add(TypeAdapters.ATOMIC_INTEGER_FACTORY); arrayList2.add(TypeAdapters.ATOMIC_BOOLEAN_FACTORY); arrayList2.add(TypeAdapters.newFactory(AtomicLong.class, atomicLongAdapter(longAdapter))); arrayList2.add(TypeAdapters.newFactory(AtomicLongArray.class, atomicLongArrayAdapter(longAdapter))); arrayList2.add(TypeAdapters.ATOMIC_INTEGER_ARRAY_FACTORY); arrayList2.add(TypeAdapters.CHARACTER_FACTORY); arrayList2.add(TypeAdapters.STRING_BUILDER_FACTORY); arrayList2.add(TypeAdapters.STRING_BUFFER_FACTORY); arrayList2.add(TypeAdapters.newFactory(BigDecimal.class, TypeAdapters.BIG_DECIMAL)); arrayList2.add(TypeAdapters.newFactory(BigInteger.class, TypeAdapters.BIG_INTEGER)); arrayList2.add(TypeAdapters.URL_FACTORY); arrayList2.add(TypeAdapters.URI_FACTORY); arrayList2.add(TypeAdapters.UUID_FACTORY); arrayList2.add(TypeAdapters.CURRENCY_FACTORY); arrayList2.add(TypeAdapters.LOCALE_FACTORY); arrayList2.add(TypeAdapters.INET_ADDRESS_FACTORY); arrayList2.add(TypeAdapters.BIT_SET_FACTORY); arrayList2.add(DateTypeAdapter.FACTORY); arrayList2.add(TypeAdapters.CALENDAR_FACTORY); if (SqlTypesSupport.SUPPORTS_SQL_TYPES) { arrayList2.add(SqlTypesSupport.TIME_FACTORY); arrayList2.add(SqlTypesSupport.DATE_FACTORY); arrayList2.add(SqlTypesSupport.TIMESTAMP_FACTORY); } arrayList2.add(ArrayTypeAdapter.FACTORY); arrayList2.add(TypeAdapters.CLASS_FACTORY); arrayList2.add(new CollectionTypeAdapterFactory(constructorConstructor)); arrayList2.add(new MapTypeAdapterFactory(constructorConstructor, z2)); JsonAdapterAnnotationTypeAdapterFactory jsonAdapterAnnotationTypeAdapterFactory = new JsonAdapterAnnotationTypeAdapterFactory(constructorConstructor); this.jsonAdapterFactory = jsonAdapterAnnotationTypeAdapterFactory; arrayList2.add(jsonAdapterAnnotationTypeAdapterFactory); arrayList2.add(TypeAdapters.ENUM_FACTORY); arrayList2.add(new ReflectiveTypeAdapterFactory(constructorConstructor, fieldNamingStrategy, excluder, jsonAdapterAnnotationTypeAdapterFactory)); this.factories = Collections.unmodifiableList(arrayList2); } public GsonBuilder newBuilder() { return new GsonBuilder(this); } private TypeAdapter doubleAdapter(boolean z) { if (z) { return TypeAdapters.DOUBLE; } return new TypeAdapter(this) { // from class: com.google.gson.Gson.1 final Gson this$0; { this.this$0 = this; } @Override // com.google.gson.TypeAdapter /* renamed from: read, reason: merged with bridge method [inline-methods] */ public Number read2(JsonReader jsonReader) throws IOException { if (jsonReader.peek() == JsonToken.NULL) { jsonReader.nextNull(); return null; } return Double.valueOf(jsonReader.nextDouble()); } @Override // com.google.gson.TypeAdapter public void write(JsonWriter jsonWriter, Number number) throws IOException { if (number == null) { jsonWriter.nullValue(); } else { Gson.checkValidFloatingPoint(number.doubleValue()); jsonWriter.value(number); } } }; } private TypeAdapter floatAdapter(boolean z) { if (z) { return TypeAdapters.FLOAT; } return new TypeAdapter(this) { // from class: com.google.gson.Gson.2 final Gson this$0; { this.this$0 = this; } @Override // com.google.gson.TypeAdapter /* renamed from: read */ public Number read2(JsonReader jsonReader) throws IOException { if (jsonReader.peek() == JsonToken.NULL) { jsonReader.nextNull(); return null; } return Float.valueOf((float) jsonReader.nextDouble()); } @Override // com.google.gson.TypeAdapter public void write(JsonWriter jsonWriter, Number number) throws IOException { if (number == null) { jsonWriter.nullValue(); } else { Gson.checkValidFloatingPoint(number.floatValue()); jsonWriter.value(number); } } }; } static void checkValidFloatingPoint(double d) { if (Double.isNaN(d) || Double.isInfinite(d)) { StringBuilder sb = new StringBuilder(); sb.append(d); sb.append(" is not a valid double value as per JSON specification. To override this behavior, use GsonBuilder.serializeSpecialFloatingPointValues() method."); throw new IllegalArgumentException(sb.toString()); } } private static TypeAdapter longAdapter(LongSerializationPolicy longSerializationPolicy) { if (longSerializationPolicy == LongSerializationPolicy.DEFAULT) { return TypeAdapters.LONG; } return new TypeAdapter() { // from class: com.google.gson.Gson.3 /* JADX WARN: Can't rename method to resolve collision */ @Override // com.google.gson.TypeAdapter /* renamed from: read */ public Number read2(JsonReader jsonReader) throws IOException { if (jsonReader.peek() == JsonToken.NULL) { jsonReader.nextNull(); return null; } return Long.valueOf(jsonReader.nextLong()); } @Override // com.google.gson.TypeAdapter public void write(JsonWriter jsonWriter, Number number) throws IOException { if (number == null) { jsonWriter.nullValue(); } else { jsonWriter.value(number.toString()); } } }; } private static TypeAdapter atomicLongAdapter(TypeAdapter typeAdapter) { return new TypeAdapter(typeAdapter) { // from class: com.google.gson.Gson.4 final TypeAdapter val$longAdapter; { this.val$longAdapter = typeAdapter; } @Override // com.google.gson.TypeAdapter public void write(JsonWriter jsonWriter, AtomicLong atomicLong) throws IOException { this.val$longAdapter.write(jsonWriter, Long.valueOf(atomicLong.get())); } @Override // com.google.gson.TypeAdapter /* renamed from: read, reason: avoid collision after fix types in other method */ public AtomicLong read2(JsonReader jsonReader) throws IOException { return new AtomicLong(((Number) this.val$longAdapter.read2(jsonReader)).longValue()); } }.nullSafe(); } private static TypeAdapter atomicLongArrayAdapter(TypeAdapter typeAdapter) { return new TypeAdapter(typeAdapter) { // from class: com.google.gson.Gson.5 final TypeAdapter val$longAdapter; { this.val$longAdapter = typeAdapter; } @Override // com.google.gson.TypeAdapter public void write(JsonWriter jsonWriter, AtomicLongArray atomicLongArray) throws IOException { jsonWriter.beginArray(); int length = atomicLongArray.length(); for (int i = 0; i < length; i++) { this.val$longAdapter.write(jsonWriter, Long.valueOf(atomicLongArray.get(i))); } jsonWriter.endArray(); } @Override // com.google.gson.TypeAdapter /* renamed from: read, reason: avoid collision after fix types in other method */ public AtomicLongArray read2(JsonReader jsonReader) throws IOException { ArrayList arrayList = new ArrayList(); jsonReader.beginArray(); while (jsonReader.hasNext()) { arrayList.add(Long.valueOf(((Number) this.val$longAdapter.read2(jsonReader)).longValue())); } jsonReader.endArray(); int size = arrayList.size(); AtomicLongArray atomicLongArray = new AtomicLongArray(size); for (int i = 0; i < size; i++) { atomicLongArray.set(i, ((Long) arrayList.get(i)).longValue()); } return atomicLongArray; } }.nullSafe(); } public TypeAdapter getAdapter(TypeToken typeToken) { boolean z; TypeAdapter typeAdapter = (TypeAdapter) this.typeTokenCache.get(typeToken == null ? NULL_KEY_SURROGATE : typeToken); if (typeAdapter != null) { return typeAdapter; } Map, FutureTypeAdapter> map = this.calls.get(); if (map == null) { map = new HashMap<>(); this.calls.set(map); z = true; } else { z = false; } FutureTypeAdapter futureTypeAdapter = map.get(typeToken); if (futureTypeAdapter != null) { return futureTypeAdapter; } try { FutureTypeAdapter futureTypeAdapter2 = new FutureTypeAdapter<>(); map.put(typeToken, futureTypeAdapter2); Iterator it = this.factories.iterator(); while (it.hasNext()) { TypeAdapter create = it.next().create(this, typeToken); if (create != null) { futureTypeAdapter2.setDelegate(create); this.typeTokenCache.put(typeToken, create); return create; } } StringBuilder sb = new StringBuilder(); sb.append("GSON (2.8.9) cannot handle "); sb.append(typeToken); throw new IllegalArgumentException(sb.toString()); } finally { map.remove(typeToken); if (z) { this.calls.remove(); } } } public TypeAdapter getDelegateAdapter(TypeAdapterFactory typeAdapterFactory, TypeToken typeToken) { if (!this.factories.contains(typeAdapterFactory)) { typeAdapterFactory = this.jsonAdapterFactory; } boolean z = false; for (TypeAdapterFactory typeAdapterFactory2 : this.factories) { if (z) { TypeAdapter create = typeAdapterFactory2.create(this, typeToken); if (create != null) { return create; } } else if (typeAdapterFactory2 == typeAdapterFactory) { z = true; } } throw new IllegalArgumentException("GSON cannot serialize ".concat(String.valueOf(typeToken))); } public TypeAdapter getAdapter(Class cls) { return getAdapter(TypeToken.get((Class) cls)); } public JsonElement toJsonTree(Object obj) { if (obj == null) { return JsonNull.INSTANCE; } return toJsonTree(obj, obj.getClass()); } public JsonElement toJsonTree(Object obj, Type type) { JsonTreeWriter jsonTreeWriter = new JsonTreeWriter(); toJson(obj, type, jsonTreeWriter); return jsonTreeWriter.get(); } public String toJson(Object obj) { if (obj == null) { return toJson((JsonElement) JsonNull.INSTANCE); } return toJson(obj, obj.getClass()); } public String toJson(Object obj, Type type) { StringWriter stringWriter = new StringWriter(); toJson(obj, type, stringWriter); return stringWriter.toString(); } public void toJson(Object obj, Appendable appendable) throws JsonIOException { if (obj != null) { toJson(obj, obj.getClass(), appendable); } else { toJson((JsonElement) JsonNull.INSTANCE, appendable); } } public void toJson(Object obj, Type type, Appendable appendable) throws JsonIOException { try { toJson(obj, type, newJsonWriter(Streams.writerForAppendable(appendable))); } catch (IOException e) { throw new JsonIOException(e); } } public void toJson(Object obj, Type type, JsonWriter jsonWriter) throws JsonIOException { TypeAdapter adapter = getAdapter(TypeToken.get(type)); boolean isLenient = jsonWriter.isLenient(); jsonWriter.setLenient(true); boolean isHtmlSafe = jsonWriter.isHtmlSafe(); jsonWriter.setHtmlSafe(this.htmlSafe); boolean serializeNulls = jsonWriter.getSerializeNulls(); jsonWriter.setSerializeNulls(this.serializeNulls); try { try { adapter.write(jsonWriter, obj); } catch (IOException e) { throw new JsonIOException(e); } catch (AssertionError e2) { StringBuilder sb = new StringBuilder("AssertionError (GSON 2.8.9): "); sb.append(e2.getMessage()); AssertionError assertionError = new AssertionError(sb.toString()); assertionError.initCause(e2); throw assertionError; } } finally { jsonWriter.setLenient(isLenient); jsonWriter.setHtmlSafe(isHtmlSafe); jsonWriter.setSerializeNulls(serializeNulls); } } public String toJson(JsonElement jsonElement) { StringWriter stringWriter = new StringWriter(); toJson(jsonElement, (Appendable) stringWriter); return stringWriter.toString(); } public void toJson(JsonElement jsonElement, Appendable appendable) throws JsonIOException { try { toJson(jsonElement, newJsonWriter(Streams.writerForAppendable(appendable))); } catch (IOException e) { throw new JsonIOException(e); } } public JsonWriter newJsonWriter(Writer writer) throws IOException { if (this.generateNonExecutableJson) { writer.write(JSON_NON_EXECUTABLE_PREFIX); } JsonWriter jsonWriter = new JsonWriter(writer); if (this.prettyPrinting) { jsonWriter.setIndent(" "); } jsonWriter.setSerializeNulls(this.serializeNulls); return jsonWriter; } public JsonReader newJsonReader(Reader reader) { JsonReader jsonReader = new JsonReader(reader); jsonReader.setLenient(this.lenient); return jsonReader; } public void toJson(JsonElement jsonElement, JsonWriter jsonWriter) throws JsonIOException { boolean isLenient = jsonWriter.isLenient(); jsonWriter.setLenient(true); boolean isHtmlSafe = jsonWriter.isHtmlSafe(); jsonWriter.setHtmlSafe(this.htmlSafe); boolean serializeNulls = jsonWriter.getSerializeNulls(); jsonWriter.setSerializeNulls(this.serializeNulls); try { try { Streams.write(jsonElement, jsonWriter); } catch (IOException e) { throw new JsonIOException(e); } catch (AssertionError e2) { StringBuilder sb = new StringBuilder("AssertionError (GSON 2.8.9): "); sb.append(e2.getMessage()); AssertionError assertionError = new AssertionError(sb.toString()); assertionError.initCause(e2); throw assertionError; } } finally { jsonWriter.setLenient(isLenient); jsonWriter.setHtmlSafe(isHtmlSafe); jsonWriter.setSerializeNulls(serializeNulls); } } public T fromJson(String str, Class cls) throws JsonSyntaxException { return (T) Primitives.wrap(cls).cast(fromJson(str, (Type) cls)); } public T fromJson(String str, Type type) throws JsonSyntaxException { if (str == null) { return null; } return (T) fromJson(new StringReader(str), type); } public T fromJson(Reader reader, Class cls) throws JsonSyntaxException, JsonIOException { JsonReader newJsonReader = newJsonReader(reader); Object fromJson = fromJson(newJsonReader, cls); assertFullConsumption(fromJson, newJsonReader); return (T) Primitives.wrap(cls).cast(fromJson); } public T fromJson(Reader reader, Type type) throws JsonIOException, JsonSyntaxException { JsonReader newJsonReader = newJsonReader(reader); T t = (T) fromJson(newJsonReader, type); assertFullConsumption(t, newJsonReader); return t; } private static void assertFullConsumption(Object obj, JsonReader jsonReader) { if (obj != null) { try { if (jsonReader.peek() == JsonToken.END_DOCUMENT) { } else { throw new JsonIOException("JSON document was not fully consumed."); } } catch (MalformedJsonException e) { throw new JsonSyntaxException(e); } catch (IOException e2) { throw new JsonIOException(e2); } } } public T fromJson(JsonReader jsonReader, Type type) throws JsonIOException, JsonSyntaxException { boolean isLenient = jsonReader.isLenient(); boolean z = true; jsonReader.setLenient(true); try { try { try { jsonReader.peek(); z = false; return getAdapter(TypeToken.get(type)).read2(jsonReader); } catch (IOException e) { throw new JsonSyntaxException(e); } catch (IllegalStateException e2) { throw new JsonSyntaxException(e2); } } catch (EOFException e3) { if (!z) { throw new JsonSyntaxException(e3); } jsonReader.setLenient(isLenient); return null; } catch (AssertionError e4) { StringBuilder sb = new StringBuilder("AssertionError (GSON 2.8.9): "); sb.append(e4.getMessage()); AssertionError assertionError = new AssertionError(sb.toString()); assertionError.initCause(e4); throw assertionError; } } finally { jsonReader.setLenient(isLenient); } } public T fromJson(JsonElement jsonElement, Class cls) throws JsonSyntaxException { return (T) Primitives.wrap(cls).cast(fromJson(jsonElement, (Type) cls)); } public T fromJson(JsonElement jsonElement, Type type) throws JsonSyntaxException { if (jsonElement == null) { return null; } return (T) fromJson(new JsonTreeReader(jsonElement), type); } /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes.dex */ public static class FutureTypeAdapter extends TypeAdapter { private TypeAdapter delegate; FutureTypeAdapter() { } public void setDelegate(TypeAdapter typeAdapter) { if (this.delegate != null) { throw new AssertionError(); } this.delegate = typeAdapter; } @Override // com.google.gson.TypeAdapter /* renamed from: read */ public T read2(JsonReader jsonReader) throws IOException { TypeAdapter typeAdapter = this.delegate; if (typeAdapter == null) { throw new IllegalStateException(); } return typeAdapter.read2(jsonReader); } @Override // com.google.gson.TypeAdapter public void write(JsonWriter jsonWriter, T t) throws IOException { TypeAdapter typeAdapter = this.delegate; if (typeAdapter == null) { throw new IllegalStateException(); } typeAdapter.write(jsonWriter, t); } } public String toString() { StringBuilder sb = new StringBuilder("{serializeNulls:"); sb.append(this.serializeNulls); sb.append(",factories:"); sb.append(this.factories); sb.append(",instanceCreators:"); sb.append(this.constructorConstructor); sb.append(UrlTreeKt.componentParamSuffix); return sb.toString(); } public boolean serializeNulls() { return this.serializeNulls; } public boolean htmlSafe() { return this.htmlSafe; } public FieldNamingStrategy fieldNamingStrategy() { return this.fieldNamingStrategy; } @Deprecated public Excluder excluder() { return this.excluder; } }