public final class com.fasterxml.jackson.databind.ser.SerializerCache extends java.lang.Object
{
public static final int DEFAULT_MAX_CACHED;
private final com.fasterxml.jackson.databind.util.LRUMap _sharedMap;
private final java.util.concurrent.atomic.AtomicReference _readOnlyMap;
public void <init>()
{
com.fasterxml.jackson.databind.ser.SerializerCache v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
specialinvoke v.<com.fasterxml.jackson.databind.ser.SerializerCache: void <init>(int)>(4000);
return;
}
public void <init>(int)
{
com.fasterxml.jackson.databind.ser.SerializerCache v;
com.fasterxml.jackson.databind.util.LRUMap v;
int v, v, v;
java.util.concurrent.atomic.AtomicReference v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v = v >> 2;
v = staticinvoke <java.lang.Math: int min(int,int)>(64, v);
v = new com.fasterxml.jackson.databind.util.LRUMap;
specialinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: void <init>(int,int)>(v, v);
v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap> = v;
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
v.<com.fasterxml.jackson.databind.ser.SerializerCache: java.util.concurrent.atomic.AtomicReference _readOnlyMap> = v;
return;
}
public com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMap getReadOnlyLookupMap()
{
com.fasterxml.jackson.databind.ser.SerializerCache v;
com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMap v;
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: java.util.concurrent.atomic.AtomicReference _readOnlyMap>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v == null goto label;
return v;
label:
v = specialinvoke v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMap _makeReadOnlyLookupMap()>();
return v;
}
private final synchronized com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMap _makeReadOnlyLookupMap()
{
com.fasterxml.jackson.databind.ser.SerializerCache v;
com.fasterxml.jackson.databind.util.LRUMap v;
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v, v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: java.util.concurrent.atomic.AtomicReference _readOnlyMap>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v != null goto label;
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
v = staticinvoke <com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMap: com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMap 'from'(com.fasterxml.jackson.databind.util.LRUMap)>(v);
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: java.util.concurrent.atomic.AtomicReference _readOnlyMap>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(v);
label:
return v;
}
public synchronized int size()
{
com.fasterxml.jackson.databind.util.LRUMap v;
int v;
com.fasterxml.jackson.databind.ser.SerializerCache v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
v = virtualinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: int size()>();
return v;
}
public com.fasterxml.jackson.databind.JsonSerializer untypedValueSerializer(java.lang.Class)
{
java.lang.Throwable v;
com.fasterxml.jackson.databind.ser.SerializerCache v;
com.fasterxml.jackson.databind.util.TypeKey v;
com.fasterxml.jackson.databind.util.LRUMap v;
java.lang.Class v;
java.lang.Object v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v := @parameter: java.lang.Class;
entermonitor v;
label:
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
v = new com.fasterxml.jackson.databind.util.TypeKey;
specialinvoke v.<com.fasterxml.jackson.databind.util.TypeKey: void <init>(java.lang.Class,boolean)>(v, 0);
v = virtualinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: java.lang.Object get(java.lang.Object)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public com.fasterxml.jackson.databind.JsonSerializer untypedValueSerializer(com.fasterxml.jackson.databind.JavaType)
{
java.lang.Throwable v;
com.fasterxml.jackson.databind.ser.SerializerCache v;
com.fasterxml.jackson.databind.util.TypeKey v;
com.fasterxml.jackson.databind.util.LRUMap v;
java.lang.Object v;
com.fasterxml.jackson.databind.JavaType v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v := @parameter: com.fasterxml.jackson.databind.JavaType;
entermonitor v;
label:
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
v = new com.fasterxml.jackson.databind.util.TypeKey;
specialinvoke v.<com.fasterxml.jackson.databind.util.TypeKey: void <init>(com.fasterxml.jackson.databind.JavaType,boolean)>(v, 0);
v = virtualinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: java.lang.Object get(java.lang.Object)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public com.fasterxml.jackson.databind.JsonSerializer typedValueSerializer(com.fasterxml.jackson.databind.JavaType)
{
java.lang.Throwable v;
com.fasterxml.jackson.databind.ser.SerializerCache v;
com.fasterxml.jackson.databind.util.TypeKey v;
com.fasterxml.jackson.databind.util.LRUMap v;
java.lang.Object v;
com.fasterxml.jackson.databind.JavaType v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v := @parameter: com.fasterxml.jackson.databind.JavaType;
entermonitor v;
label:
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
v = new com.fasterxml.jackson.databind.util.TypeKey;
specialinvoke v.<com.fasterxml.jackson.databind.util.TypeKey: void <init>(com.fasterxml.jackson.databind.JavaType,boolean)>(v, 1);
v = virtualinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: java.lang.Object get(java.lang.Object)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public com.fasterxml.jackson.databind.JsonSerializer typedValueSerializer(java.lang.Class)
{
java.lang.Throwable v;
com.fasterxml.jackson.databind.ser.SerializerCache v;
com.fasterxml.jackson.databind.util.TypeKey v;
com.fasterxml.jackson.databind.util.LRUMap v;
java.lang.Class v;
java.lang.Object v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v := @parameter: java.lang.Class;
entermonitor v;
label:
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
v = new com.fasterxml.jackson.databind.util.TypeKey;
specialinvoke v.<com.fasterxml.jackson.databind.util.TypeKey: void <init>(java.lang.Class,boolean)>(v, 1);
v = virtualinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: java.lang.Object get(java.lang.Object)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public void addTypedSerializer(com.fasterxml.jackson.databind.JavaType, com.fasterxml.jackson.databind.JsonSerializer)
{
java.lang.Throwable v;
com.fasterxml.jackson.databind.util.TypeKey v;
java.util.concurrent.atomic.AtomicReference v;
com.fasterxml.jackson.databind.ser.SerializerCache v;
com.fasterxml.jackson.databind.util.LRUMap v;
com.fasterxml.jackson.databind.JsonSerializer v;
java.lang.Object v;
com.fasterxml.jackson.databind.JavaType v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v := @parameter: com.fasterxml.jackson.databind.JavaType;
v := @parameter: com.fasterxml.jackson.databind.JsonSerializer;
entermonitor v;
label:
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
v = new com.fasterxml.jackson.databind.util.TypeKey;
specialinvoke v.<com.fasterxml.jackson.databind.util.TypeKey: void <init>(com.fasterxml.jackson.databind.JavaType,boolean)>(v, 1);
v = virtualinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
if v != null goto label;
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: java.util.concurrent.atomic.AtomicReference _readOnlyMap>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(null);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void addTypedSerializer(java.lang.Class, com.fasterxml.jackson.databind.JsonSerializer)
{
java.lang.Throwable v;
com.fasterxml.jackson.databind.util.TypeKey v;
java.util.concurrent.atomic.AtomicReference v;
com.fasterxml.jackson.databind.ser.SerializerCache v;
com.fasterxml.jackson.databind.util.LRUMap v;
com.fasterxml.jackson.databind.JsonSerializer v;
java.lang.Class v;
java.lang.Object v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v := @parameter: java.lang.Class;
v := @parameter: com.fasterxml.jackson.databind.JsonSerializer;
entermonitor v;
label:
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
v = new com.fasterxml.jackson.databind.util.TypeKey;
specialinvoke v.<com.fasterxml.jackson.databind.util.TypeKey: void <init>(java.lang.Class,boolean)>(v, 1);
v = virtualinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
if v != null goto label;
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: java.util.concurrent.atomic.AtomicReference _readOnlyMap>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(null);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void addAndResolveNonTypedSerializer(java.lang.Class, com.fasterxml.jackson.databind.JsonSerializer, com.fasterxml.jackson.databind.SerializerProvider) throws com.fasterxml.jackson.databind.JsonMappingException
{
java.lang.Throwable v;
com.fasterxml.jackson.databind.util.TypeKey v;
java.util.concurrent.atomic.AtomicReference v;
com.fasterxml.jackson.databind.ser.SerializerCache v;
com.fasterxml.jackson.databind.util.LRUMap v;
com.fasterxml.jackson.databind.JsonSerializer v;
java.lang.Class v;
java.lang.Object v;
com.fasterxml.jackson.databind.SerializerProvider v;
boolean v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v := @parameter: java.lang.Class;
v := @parameter: com.fasterxml.jackson.databind.JsonSerializer;
v := @parameter: com.fasterxml.jackson.databind.SerializerProvider;
entermonitor v;
label:
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
v = new com.fasterxml.jackson.databind.util.TypeKey;
specialinvoke v.<com.fasterxml.jackson.databind.util.TypeKey: void <init>(java.lang.Class,boolean)>(v, 0);
v = virtualinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
if v != null goto label;
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: java.util.concurrent.atomic.AtomicReference _readOnlyMap>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(null);
label:
v = v instanceof com.fasterxml.jackson.databind.ser.ResolvableSerializer;
if v == 0 goto label;
interfaceinvoke v.<com.fasterxml.jackson.databind.ser.ResolvableSerializer: void resolve(com.fasterxml.jackson.databind.SerializerProvider)>(v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void addAndResolveNonTypedSerializer(com.fasterxml.jackson.databind.JavaType, com.fasterxml.jackson.databind.JsonSerializer, com.fasterxml.jackson.databind.SerializerProvider) throws com.fasterxml.jackson.databind.JsonMappingException
{
java.lang.Throwable v;
com.fasterxml.jackson.databind.util.TypeKey v;
java.util.concurrent.atomic.AtomicReference v;
com.fasterxml.jackson.databind.ser.SerializerCache v;
com.fasterxml.jackson.databind.util.LRUMap v;
com.fasterxml.jackson.databind.JsonSerializer v;
java.lang.Object v;
com.fasterxml.jackson.databind.JavaType v;
com.fasterxml.jackson.databind.SerializerProvider v;
boolean v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v := @parameter: com.fasterxml.jackson.databind.JavaType;
v := @parameter: com.fasterxml.jackson.databind.JsonSerializer;
v := @parameter: com.fasterxml.jackson.databind.SerializerProvider;
entermonitor v;
label:
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
v = new com.fasterxml.jackson.databind.util.TypeKey;
specialinvoke v.<com.fasterxml.jackson.databind.util.TypeKey: void <init>(com.fasterxml.jackson.databind.JavaType,boolean)>(v, 0);
v = virtualinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
if v != null goto label;
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: java.util.concurrent.atomic.AtomicReference _readOnlyMap>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(null);
label:
v = v instanceof com.fasterxml.jackson.databind.ser.ResolvableSerializer;
if v == 0 goto label;
interfaceinvoke v.<com.fasterxml.jackson.databind.ser.ResolvableSerializer: void resolve(com.fasterxml.jackson.databind.SerializerProvider)>(v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void addAndResolveNonTypedSerializer(java.lang.Class, com.fasterxml.jackson.databind.JavaType, com.fasterxml.jackson.databind.JsonSerializer, com.fasterxml.jackson.databind.SerializerProvider) throws com.fasterxml.jackson.databind.JsonMappingException
{
java.lang.Throwable v;
com.fasterxml.jackson.databind.util.TypeKey v, v;
java.util.concurrent.atomic.AtomicReference v;
com.fasterxml.jackson.databind.ser.SerializerCache v;
com.fasterxml.jackson.databind.util.LRUMap v, v;
com.fasterxml.jackson.databind.JsonSerializer v;
java.lang.Class v;
java.lang.Object v, v;
com.fasterxml.jackson.databind.JavaType v;
com.fasterxml.jackson.databind.SerializerProvider v;
boolean v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v := @parameter: java.lang.Class;
v := @parameter: com.fasterxml.jackson.databind.JavaType;
v := @parameter: com.fasterxml.jackson.databind.JsonSerializer;
v := @parameter: com.fasterxml.jackson.databind.SerializerProvider;
entermonitor v;
label:
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
v = new com.fasterxml.jackson.databind.util.TypeKey;
specialinvoke v.<com.fasterxml.jackson.databind.util.TypeKey: void <init>(java.lang.Class,boolean)>(v, 0);
v = virtualinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
v = new com.fasterxml.jackson.databind.util.TypeKey;
specialinvoke v.<com.fasterxml.jackson.databind.util.TypeKey: void <init>(com.fasterxml.jackson.databind.JavaType,boolean)>(v, 0);
v = virtualinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
if v == null goto label;
if v != null goto label;
label:
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: java.util.concurrent.atomic.AtomicReference _readOnlyMap>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(null);
label:
v = v instanceof com.fasterxml.jackson.databind.ser.ResolvableSerializer;
if v == 0 goto label;
interfaceinvoke v.<com.fasterxml.jackson.databind.ser.ResolvableSerializer: void resolve(com.fasterxml.jackson.databind.SerializerProvider)>(v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public synchronized void flush()
{
com.fasterxml.jackson.databind.util.LRUMap v;
com.fasterxml.jackson.databind.ser.SerializerCache v;
v := @this: com.fasterxml.jackson.databind.ser.SerializerCache;
v = v.<com.fasterxml.jackson.databind.ser.SerializerCache: com.fasterxml.jackson.databind.util.LRUMap _sharedMap>;
virtualinvoke v.<com.fasterxml.jackson.databind.util.LRUMap: void clear()>();
return;
}
}