GsonBuilder.java 6.55 KB
package com.google.gson;

import com.google.gson.internal..Gson.Preconditions;
import com.google.gson.internal.Excluder;
import com.google.gson.internal.bind.TypeAdapters;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import ru;
import rv;

public final class GsonBuilder
{
  private Excluder a = Excluder.DEFAULT;
  private LongSerializationPolicy b = LongSerializationPolicy.DEFAULT;
  private FieldNamingStrategy c = FieldNamingPolicy.IDENTITY;
  private final Map<Type, InstanceCreator<?>> d = new HashMap();
  private final List<TypeAdapterFactory> e = new ArrayList();
  private final List<TypeAdapterFactory> f = new ArrayList();
  private boolean g;
  private String h;
  private int i = 2;
  private int j = 2;
  private boolean k;
  private boolean l;
  private boolean m = true;
  private boolean n;
  private boolean o;
  
  public final GsonBuilder addDeserializationExclusionStrategy(ExclusionStrategy paramExclusionStrategy)
  {
    this.a = this.a.withExclusionStrategy(paramExclusionStrategy, false, true);
    return this;
  }
  
  public final GsonBuilder addSerializationExclusionStrategy(ExclusionStrategy paramExclusionStrategy)
  {
    this.a = this.a.withExclusionStrategy(paramExclusionStrategy, true, false);
    return this;
  }
  
  public final Gson create()
  {
    ArrayList localArrayList = new ArrayList();
    localArrayList.addAll(this.e);
    Collections.reverse(localArrayList);
    localArrayList.addAll(this.f);
    Object localObject = this.h;
    int i1 = this.i;
    int i2 = this.j;
    if ((localObject != null) && (!"".equals(((String)localObject).trim()))) {}
    for (localObject = new ru((String)localObject);; localObject = new ru(i1, i2))
    {
      localArrayList.add(rv.a(TypeToken.get(java.util.Date.class), localObject));
      localArrayList.add(rv.a(TypeToken.get(Timestamp.class), localObject));
      localArrayList.add(rv.a(TypeToken.get(java.sql.Date.class), localObject));
      do
      {
        return new Gson(this.a, this.c, this.d, this.g, this.k, this.o, this.m, this.n, this.l, this.b, localArrayList);
      } while ((i1 == 2) || (i2 == 2));
    }
  }
  
  public final GsonBuilder disableHtmlEscaping()
  {
    this.m = false;
    return this;
  }
  
  public final GsonBuilder disableInnerClassSerialization()
  {
    this.a = this.a.disableInnerClassSerialization();
    return this;
  }
  
  public final GsonBuilder enableComplexMapKeySerialization()
  {
    this.k = true;
    return this;
  }
  
  public final GsonBuilder excludeFieldsWithModifiers(int... paramVarArgs)
  {
    this.a = this.a.withModifiers(paramVarArgs);
    return this;
  }
  
  public final GsonBuilder excludeFieldsWithoutExposeAnnotation()
  {
    this.a = this.a.excludeFieldsWithoutExposeAnnotation();
    return this;
  }
  
  public final GsonBuilder generateNonExecutableJson()
  {
    this.o = true;
    return this;
  }
  
  public final GsonBuilder registerTypeAdapter(Type paramType, Object paramObject)
  {
    if (((paramObject instanceof JsonSerializer)) || ((paramObject instanceof JsonDeserializer)) || ((paramObject instanceof InstanceCreator)) || ((paramObject instanceof TypeAdapter))) {}
    for (boolean bool = true;; bool = false)
    {
      .Gson.Preconditions.checkArgument(bool);
      if ((paramObject instanceof InstanceCreator)) {
        this.d.put(paramType, (InstanceCreator)paramObject);
      }
      if (((paramObject instanceof JsonSerializer)) || ((paramObject instanceof JsonDeserializer)))
      {
        TypeToken localTypeToken = TypeToken.get(paramType);
        this.e.add(rv.b(localTypeToken, paramObject));
      }
      if ((paramObject instanceof TypeAdapter)) {
        this.e.add(TypeAdapters.newFactory(TypeToken.get(paramType), (TypeAdapter)paramObject));
      }
      return this;
    }
  }
  
  public final GsonBuilder registerTypeAdapterFactory(TypeAdapterFactory paramTypeAdapterFactory)
  {
    this.e.add(paramTypeAdapterFactory);
    return this;
  }
  
  public final GsonBuilder registerTypeHierarchyAdapter(Class<?> paramClass, Object paramObject)
  {
    if (((paramObject instanceof JsonSerializer)) || ((paramObject instanceof JsonDeserializer)) || ((paramObject instanceof TypeAdapter))) {}
    for (boolean bool = true;; bool = false)
    {
      .Gson.Preconditions.checkArgument(bool);
      if (((paramObject instanceof JsonDeserializer)) || ((paramObject instanceof JsonSerializer))) {
        this.f.add(0, rv.a(paramClass, paramObject));
      }
      if ((paramObject instanceof TypeAdapter)) {
        this.e.add(TypeAdapters.newTypeHierarchyFactory(paramClass, (TypeAdapter)paramObject));
      }
      return this;
    }
  }
  
  public final GsonBuilder serializeNulls()
  {
    this.g = true;
    return this;
  }
  
  public final GsonBuilder serializeSpecialFloatingPointValues()
  {
    this.l = true;
    return this;
  }
  
  public final GsonBuilder setDateFormat(int paramInt)
  {
    this.i = paramInt;
    this.h = null;
    return this;
  }
  
  public final GsonBuilder setDateFormat(int paramInt1, int paramInt2)
  {
    this.i = paramInt1;
    this.j = paramInt2;
    this.h = null;
    return this;
  }
  
  public final GsonBuilder setDateFormat(String paramString)
  {
    this.h = paramString;
    return this;
  }
  
  public final GsonBuilder setExclusionStrategies(ExclusionStrategy... paramVarArgs)
  {
    int i2 = paramVarArgs.length;
    int i1 = 0;
    while (i1 < i2)
    {
      ExclusionStrategy localExclusionStrategy = paramVarArgs[i1];
      this.a = this.a.withExclusionStrategy(localExclusionStrategy, true, true);
      i1 += 1;
    }
    return this;
  }
  
  public final GsonBuilder setFieldNamingPolicy(FieldNamingPolicy paramFieldNamingPolicy)
  {
    this.c = paramFieldNamingPolicy;
    return this;
  }
  
  public final GsonBuilder setFieldNamingStrategy(FieldNamingStrategy paramFieldNamingStrategy)
  {
    this.c = paramFieldNamingStrategy;
    return this;
  }
  
  public final GsonBuilder setLongSerializationPolicy(LongSerializationPolicy paramLongSerializationPolicy)
  {
    this.b = paramLongSerializationPolicy;
    return this;
  }
  
  public final GsonBuilder setPrettyPrinting()
  {
    this.n = true;
    return this;
  }
  
  public final GsonBuilder setVersion(double paramDouble)
  {
    this.a = this.a.withVersion(paramDouble);
    return this;
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/com/google/gson/GsonBuilder.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */