public final class oadd.com.google.gson.internal.Excluder extends java.lang.Object implements oadd.com.google.gson.TypeAdapterFactory, java.lang.Cloneable
{
private static final double IGNORE_VERSIONS;
public static final oadd.com.google.gson.internal.Excluder DEFAULT;
private double version;
private int modifiers;
private boolean serializeInnerClasses;
private boolean requireExpose;
private java.util.List serializationStrategies;
private java.util.List deserializationStrategies;
public void <init>()
{
oadd.com.google.gson.internal.Excluder v;
java.util.List v, v;
v := @this: oadd.com.google.gson.internal.Excluder;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<oadd.com.google.gson.internal.Excluder: double version> = -1.0;
v.<oadd.com.google.gson.internal.Excluder: int modifiers> = 136;
v.<oadd.com.google.gson.internal.Excluder: boolean serializeInnerClasses> = 1;
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
v.<oadd.com.google.gson.internal.Excluder: java.util.List serializationStrategies> = v;
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
v.<oadd.com.google.gson.internal.Excluder: java.util.List deserializationStrategies> = v;
return;
}
protected oadd.com.google.gson.internal.Excluder clone()
{
oadd.com.google.gson.internal.Excluder v;
java.lang.Object v;
java.lang.AssertionError v;
java.lang.CloneNotSupportedException v;
v := @this: oadd.com.google.gson.internal.Excluder;
label:
v = specialinvoke v.<java.lang.Object: java.lang.Object clone()>();
label:
return v;
label:
v := @caughtexception;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
catch java.lang.CloneNotSupportedException from label to label with label;
}
public oadd.com.google.gson.internal.Excluder withVersion(double)
{
oadd.com.google.gson.internal.Excluder v, v;
double v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: double;
v = virtualinvoke v.<oadd.com.google.gson.internal.Excluder: oadd.com.google.gson.internal.Excluder clone()>();
v.<oadd.com.google.gson.internal.Excluder: double version> = v;
return v;
}
public transient oadd.com.google.gson.internal.Excluder withModifiers(int[])
{
oadd.com.google.gson.internal.Excluder v, v;
int[] v;
int v, v, v, v, v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: int[];
v = virtualinvoke v.<oadd.com.google.gson.internal.Excluder: oadd.com.google.gson.internal.Excluder clone()>();
v.<oadd.com.google.gson.internal.Excluder: int modifiers> = 0;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v.<oadd.com.google.gson.internal.Excluder: int modifiers>;
v = v | v;
v.<oadd.com.google.gson.internal.Excluder: int modifiers> = v;
v = v + 1;
goto label;
label:
return v;
}
public oadd.com.google.gson.internal.Excluder disableInnerClassSerialization()
{
oadd.com.google.gson.internal.Excluder v, v;
v := @this: oadd.com.google.gson.internal.Excluder;
v = virtualinvoke v.<oadd.com.google.gson.internal.Excluder: oadd.com.google.gson.internal.Excluder clone()>();
v.<oadd.com.google.gson.internal.Excluder: boolean serializeInnerClasses> = 0;
return v;
}
public oadd.com.google.gson.internal.Excluder excludeFieldsWithoutExposeAnnotation()
{
oadd.com.google.gson.internal.Excluder v, v;
v := @this: oadd.com.google.gson.internal.Excluder;
v = virtualinvoke v.<oadd.com.google.gson.internal.Excluder: oadd.com.google.gson.internal.Excluder clone()>();
v.<oadd.com.google.gson.internal.Excluder: boolean requireExpose> = 1;
return v;
}
public oadd.com.google.gson.internal.Excluder withExclusionStrategy(oadd.com.google.gson.ExclusionStrategy, boolean, boolean)
{
oadd.com.google.gson.internal.Excluder v, v;
java.util.ArrayList v, v;
java.util.List v, v, v, v;
boolean v, v;
oadd.com.google.gson.ExclusionStrategy v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: oadd.com.google.gson.ExclusionStrategy;
v := @parameter: boolean;
v := @parameter: boolean;
v = virtualinvoke v.<oadd.com.google.gson.internal.Excluder: oadd.com.google.gson.internal.Excluder clone()>();
if v == 0 goto label;
v = new java.util.ArrayList;
v = v.<oadd.com.google.gson.internal.Excluder: java.util.List serializationStrategies>;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v.<oadd.com.google.gson.internal.Excluder: java.util.List serializationStrategies> = v;
v = v.<oadd.com.google.gson.internal.Excluder: java.util.List serializationStrategies>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
if v == 0 goto label;
v = new java.util.ArrayList;
v = v.<oadd.com.google.gson.internal.Excluder: java.util.List deserializationStrategies>;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v.<oadd.com.google.gson.internal.Excluder: java.util.List deserializationStrategies> = v;
v = v.<oadd.com.google.gson.internal.Excluder: java.util.List deserializationStrategies>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
return v;
}
public oadd.com.google.gson.TypeAdapter create(oadd.com.google.gson.Gson, oadd.com.google.gson.reflect.TypeToken)
{
oadd.com.google.gson.internal.Excluder v;
oadd.com.google.gson.internal.Excluder$1 v;
oadd.com.google.gson.Gson v;
java.lang.Class v;
oadd.com.google.gson.reflect.TypeToken v;
boolean v, v, v, v, v, v, v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: oadd.com.google.gson.Gson;
v := @parameter: oadd.com.google.gson.reflect.TypeToken;
v = virtualinvoke v.<oadd.com.google.gson.reflect.TypeToken: java.lang.Class getRawType()>();
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean excludeClassChecks(java.lang.Class)>(v);
if v != 0 goto label;
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean excludeClassInStrategy(java.lang.Class,boolean)>(v, 1);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v != 0 goto label;
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean excludeClassInStrategy(java.lang.Class,boolean)>(v, 0);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v != 0 goto label;
if v != 0 goto label;
return null;
label:
v = new oadd.com.google.gson.internal.Excluder$1;
specialinvoke v.<oadd.com.google.gson.internal.Excluder$1: void <init>(oadd.com.google.gson.internal.Excluder,boolean,boolean,oadd.com.google.gson.Gson,oadd.com.google.gson.reflect.TypeToken)>(v, v, v, v, v);
return v;
}
public boolean excludeField(java.lang.reflect.Field, boolean)
{
oadd.com.google.gson.internal.Excluder v;
oadd.com.google.gson.FieldAttributes v;
byte v;
int v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
double v;
java.util.Iterator v;
java.lang.reflect.Field v;
java.util.List v;
java.lang.'annotation'.Annotation v, v, v;
java.lang.Class v, v;
java.lang.Object v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: java.lang.reflect.Field;
v := @parameter: boolean;
v = v.<oadd.com.google.gson.internal.Excluder: int modifiers>;
v = virtualinvoke v.<java.lang.reflect.Field: int getModifiers()>();
v = v & v;
if v == 0 goto label;
return 1;
label:
v = v.<oadd.com.google.gson.internal.Excluder: double version>;
v = v cmpl -1.0;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Loadd/com/google/gson/annotations/Since;");
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Loadd/com/google/gson/annotations/Until;");
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean isValidVersion(oadd.com.google.gson.annotations.Since,oadd.com.google.gson.annotations.Until)>(v, v);
if v != 0 goto label;
return 1;
label:
v = virtualinvoke v.<java.lang.reflect.Field: boolean isSynthetic()>();
if v == 0 goto label;
return 1;
label:
v = v.<oadd.com.google.gson.internal.Excluder: boolean requireExpose>;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Loadd/com/google/gson/annotations/Expose;");
if v == null goto label;
if v == 0 goto label;
v = interfaceinvoke v.<oadd.com.google.gson.annotations.Expose: boolean serialize()>();
if v != 0 goto label;
goto label;
label:
v = interfaceinvoke v.<oadd.com.google.gson.annotations.Expose: boolean deserialize()>();
if v != 0 goto label;
label:
return 1;
label:
v = v.<oadd.com.google.gson.internal.Excluder: boolean serializeInnerClasses>;
if v != 0 goto label;
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Class getType()>();
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean isInnerClass(java.lang.Class)>(v);
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Class getType()>();
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean isAnonymousOrNonStaticLocal(java.lang.Class)>(v);
if v == 0 goto label;
return 1;
label:
if v == 0 goto label;
v = v.<oadd.com.google.gson.internal.Excluder: java.util.List serializationStrategies>;
goto label;
label:
v = v.<oadd.com.google.gson.internal.Excluder: java.util.List deserializationStrategies>;
label:
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = new oadd.com.google.gson.FieldAttributes;
specialinvoke v.<oadd.com.google.gson.FieldAttributes: void <init>(java.lang.reflect.Field)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<oadd.com.google.gson.ExclusionStrategy: boolean shouldSkipField(oadd.com.google.gson.FieldAttributes)>(v);
if v == 0 goto label;
return 1;
label:
return 0;
}
private boolean excludeClassChecks(java.lang.Class)
{
oadd.com.google.gson.internal.Excluder v;
byte v;
java.lang.'annotation'.Annotation v, v;
java.lang.Class v;
boolean v, v, v, v;
double v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: java.lang.Class;
v = v.<oadd.com.google.gson.internal.Excluder: double version>;
v = v cmpl -1.0;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Loadd/com/google/gson/annotations/Since;");
v = virtualinvoke v.<java.lang.Class: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Loadd/com/google/gson/annotations/Until;");
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean isValidVersion(oadd.com.google.gson.annotations.Since,oadd.com.google.gson.annotations.Until)>(v, v);
if v != 0 goto label;
return 1;
label:
v = v.<oadd.com.google.gson.internal.Excluder: boolean serializeInnerClasses>;
if v != 0 goto label;
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean isInnerClass(java.lang.Class)>(v);
if v == 0 goto label;
return 1;
label:
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean isAnonymousOrNonStaticLocal(java.lang.Class)>(v);
if v == 0 goto label;
return 1;
label:
return 0;
}
public boolean excludeClass(java.lang.Class, boolean)
{
oadd.com.google.gson.internal.Excluder v;
java.lang.Class v;
boolean v, v, v, v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: java.lang.Class;
v := @parameter: boolean;
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean excludeClassChecks(java.lang.Class)>(v);
if v != 0 goto label;
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean excludeClassInStrategy(java.lang.Class,boolean)>(v, v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean excludeClassInStrategy(java.lang.Class, boolean)
{
oadd.com.google.gson.internal.Excluder v;
java.util.Iterator v;
java.util.List v;
java.lang.Class v;
java.lang.Object v;
boolean v, v, v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: java.lang.Class;
v := @parameter: boolean;
if v == 0 goto label;
v = v.<oadd.com.google.gson.internal.Excluder: java.util.List serializationStrategies>;
goto label;
label:
v = v.<oadd.com.google.gson.internal.Excluder: java.util.List deserializationStrategies>;
label:
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<oadd.com.google.gson.ExclusionStrategy: boolean shouldSkipClass(java.lang.Class)>(v);
if v == 0 goto label;
return 1;
label:
return 0;
}
private boolean isAnonymousOrNonStaticLocal(java.lang.Class)
{
oadd.com.google.gson.internal.Excluder v;
java.lang.Class v, v;
boolean v, v, v, v, v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: java.lang.Class;
v = class "Ljava/lang/Enum;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean isStatic(java.lang.Class)>(v);
if v != 0 goto label;
v = virtualinvoke v.<java.lang.Class: boolean isAnonymousClass()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.Class: boolean isLocalClass()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean isInnerClass(java.lang.Class)
{
oadd.com.google.gson.internal.Excluder v;
java.lang.Class v;
boolean v, v, v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<java.lang.Class: boolean isMemberClass()>();
if v == 0 goto label;
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean isStatic(java.lang.Class)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean isStatic(java.lang.Class)
{
oadd.com.google.gson.internal.Excluder v;
int v, v;
java.lang.Class v;
boolean v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<java.lang.Class: int getModifiers()>();
v = v & 8;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean isValidVersion(oadd.com.google.gson.annotations.Since, oadd.com.google.gson.annotations.Until)
{
oadd.com.google.gson.internal.Excluder v;
oadd.com.google.gson.annotations.Since v;
oadd.com.google.gson.annotations.Until v;
boolean v, v, v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: oadd.com.google.gson.annotations.Since;
v := @parameter: oadd.com.google.gson.annotations.Until;
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean isValidSince(oadd.com.google.gson.annotations.Since)>(v);
if v == 0 goto label;
v = specialinvoke v.<oadd.com.google.gson.internal.Excluder: boolean isValidUntil(oadd.com.google.gson.annotations.Until)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean isValidSince(oadd.com.google.gson.annotations.Since)
{
oadd.com.google.gson.internal.Excluder v;
byte v;
oadd.com.google.gson.annotations.Since v;
double v, v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: oadd.com.google.gson.annotations.Since;
if v == null goto label;
v = interfaceinvoke v.<oadd.com.google.gson.annotations.Since: double value()>();
v = v.<oadd.com.google.gson.internal.Excluder: double version>;
v = v cmpl v;
if v <= 0 goto label;
return 0;
label:
return 1;
}
private boolean isValidUntil(oadd.com.google.gson.annotations.Until)
{
oadd.com.google.gson.internal.Excluder v;
byte v;
oadd.com.google.gson.annotations.Until v;
double v, v;
v := @this: oadd.com.google.gson.internal.Excluder;
v := @parameter: oadd.com.google.gson.annotations.Until;
if v == null goto label;
v = interfaceinvoke v.<oadd.com.google.gson.annotations.Until: double value()>();
v = v.<oadd.com.google.gson.internal.Excluder: double version>;
v = v cmpg v;
if v > 0 goto label;
return 0;
label:
return 1;
}
static void <clinit>()
{
oadd.com.google.gson.internal.Excluder v;
v = new oadd.com.google.gson.internal.Excluder;
specialinvoke v.<oadd.com.google.gson.internal.Excluder: void <init>()>();
<oadd.com.google.gson.internal.Excluder: oadd.com.google.gson.internal.Excluder DEFAULT> = v;
return;
}
}