public class org.apache.ibatis.mapping.CacheBuilder extends java.lang.Object
{
private final java.lang.String id;
private java.lang.Class implementation;
private final java.util.List decorators;
private java.lang.Integer size;
private java.lang.Long clearInterval;
private boolean readWrite;
private java.util.Properties properties;
private boolean blocking;
public void <init>(java.lang.String)
{
org.apache.ibatis.mapping.CacheBuilder v;
java.lang.String v;
java.util.ArrayList v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: java.lang.String;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.String id> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.apache.ibatis.mapping.CacheBuilder: java.util.List decorators> = v;
return;
}
public org.apache.ibatis.mapping.CacheBuilder implementation(java.lang.Class)
{
java.lang.Class v;
org.apache.ibatis.mapping.CacheBuilder v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: java.lang.Class;
v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.Class implementation> = v;
return v;
}
public org.apache.ibatis.mapping.CacheBuilder addDecorator(java.lang.Class)
{
java.lang.Class v;
java.util.List v;
org.apache.ibatis.mapping.CacheBuilder v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: java.lang.Class;
if v == null goto label;
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.util.List decorators>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
return v;
}
public org.apache.ibatis.mapping.CacheBuilder size(java.lang.Integer)
{
org.apache.ibatis.mapping.CacheBuilder v;
java.lang.Integer v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: java.lang.Integer;
v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.Integer size> = v;
return v;
}
public org.apache.ibatis.mapping.CacheBuilder clearInterval(java.lang.Long)
{
org.apache.ibatis.mapping.CacheBuilder v;
java.lang.Long v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: java.lang.Long;
v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.Long clearInterval> = v;
return v;
}
public org.apache.ibatis.mapping.CacheBuilder readWrite(boolean)
{
org.apache.ibatis.mapping.CacheBuilder v;
boolean v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: boolean;
v.<org.apache.ibatis.mapping.CacheBuilder: boolean readWrite> = v;
return v;
}
public org.apache.ibatis.mapping.CacheBuilder blocking(boolean)
{
org.apache.ibatis.mapping.CacheBuilder v;
boolean v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: boolean;
v.<org.apache.ibatis.mapping.CacheBuilder: boolean blocking> = v;
return v;
}
public org.apache.ibatis.mapping.CacheBuilder properties(java.util.Properties)
{
org.apache.ibatis.mapping.CacheBuilder v;
java.util.Properties v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: java.util.Properties;
v.<org.apache.ibatis.mapping.CacheBuilder: java.util.Properties properties> = v;
return v;
}
public org.apache.ibatis.cache.Cache build()
{
java.util.Iterator v;
org.apache.ibatis.cache.Cache v;
org.apache.ibatis.cache.decorators.LoggingCache v;
java.util.List v;
org.apache.ibatis.mapping.CacheBuilder v;
java.lang.Class v, v, v, v, v;
java.lang.Object v;
java.lang.String v;
boolean v, v, v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
specialinvoke v.<org.apache.ibatis.mapping.CacheBuilder: void setDefaultImplementations()>();
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.Class implementation>;
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.String id>;
v = specialinvoke v.<org.apache.ibatis.mapping.CacheBuilder: org.apache.ibatis.cache.Cache newBaseCacheInstance(java.lang.Class,java.lang.String)>(v, v);
specialinvoke v.<org.apache.ibatis.mapping.CacheBuilder: void setCacheProperties(org.apache.ibatis.cache.Cache)>(v);
v = class "Lorg/apache/ibatis/cache/impl/PerpetualCache;";
v = interfaceinvoke v.<org.apache.ibatis.cache.Cache: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.util.List decorators>;
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 = specialinvoke v.<org.apache.ibatis.mapping.CacheBuilder: org.apache.ibatis.cache.Cache newCacheDecoratorInstance(java.lang.Class,org.apache.ibatis.cache.Cache)>(v, v);
specialinvoke v.<org.apache.ibatis.mapping.CacheBuilder: void setCacheProperties(org.apache.ibatis.cache.Cache)>(v);
goto label;
label:
v = specialinvoke v.<org.apache.ibatis.mapping.CacheBuilder: org.apache.ibatis.cache.Cache setStandardDecorators(org.apache.ibatis.cache.Cache)>(v);
goto label;
label:
v = class "Lorg/apache/ibatis/cache/decorators/LoggingCache;";
v = interfaceinvoke v.<org.apache.ibatis.cache.Cache: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
v = new org.apache.ibatis.cache.decorators.LoggingCache;
specialinvoke v.<org.apache.ibatis.cache.decorators.LoggingCache: void <init>(org.apache.ibatis.cache.Cache)>(v);
v = v;
label:
return v;
}
private void setDefaultImplementations()
{
java.util.List v, v;
org.apache.ibatis.mapping.CacheBuilder v;
java.lang.Class v;
boolean v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.Class implementation>;
if v != null goto label;
v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.Class implementation> = class "Lorg/apache/ibatis/cache/impl/PerpetualCache;";
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.util.List decorators>;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.util.List decorators>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(class "Lorg/apache/ibatis/cache/decorators/LruCache;");
label:
return;
}
private org.apache.ibatis.cache.Cache setStandardDecorators(org.apache.ibatis.cache.Cache)
{
org.apache.ibatis.cache.decorators.SynchronizedCache v;
org.apache.ibatis.cache.decorators.ScheduledCache v;
long v;
org.apache.ibatis.cache.CacheException v;
org.apache.ibatis.cache.decorators.BlockingCache v;
java.lang.Integer v, v;
org.apache.ibatis.cache.decorators.LoggingCache v;
java.lang.Long v, v;
java.lang.String v, v;
boolean v, v, v;
org.apache.ibatis.cache.Cache v, v;
java.lang.Exception v;
org.apache.ibatis.mapping.CacheBuilder v;
org.apache.ibatis.cache.decorators.SerializedCache v;
org.apache.ibatis.reflection.MetaObject v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: org.apache.ibatis.cache.Cache;
label:
v = staticinvoke <org.apache.ibatis.reflection.SystemMetaObject: org.apache.ibatis.reflection.MetaObject forObject(java.lang.Object)>(v);
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.Integer size>;
if v == null goto label;
v = virtualinvoke v.<org.apache.ibatis.reflection.MetaObject: boolean hasSetter(java.lang.String)>("size");
if v == 0 goto label;
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.Integer size>;
virtualinvoke v.<org.apache.ibatis.reflection.MetaObject: void setValue(java.lang.String,java.lang.Object)>("size", v);
label:
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.Long clearInterval>;
if v == null goto label;
v = new org.apache.ibatis.cache.decorators.ScheduledCache;
specialinvoke v.<org.apache.ibatis.cache.decorators.ScheduledCache: void <init>(org.apache.ibatis.cache.Cache)>(v);
v = v;
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.Long clearInterval>;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
virtualinvoke v.<org.apache.ibatis.cache.decorators.ScheduledCache: void setClearInterval(long)>(v);
label:
v = v.<org.apache.ibatis.mapping.CacheBuilder: boolean readWrite>;
if v == 0 goto label;
v = new org.apache.ibatis.cache.decorators.SerializedCache;
specialinvoke v.<org.apache.ibatis.cache.decorators.SerializedCache: void <init>(org.apache.ibatis.cache.Cache)>(v);
v = v;
label:
v = new org.apache.ibatis.cache.decorators.LoggingCache;
specialinvoke v.<org.apache.ibatis.cache.decorators.LoggingCache: void <init>(org.apache.ibatis.cache.Cache)>(v);
v = new org.apache.ibatis.cache.decorators.SynchronizedCache;
specialinvoke v.<org.apache.ibatis.cache.decorators.SynchronizedCache: void <init>(org.apache.ibatis.cache.Cache)>(v);
v = v;
v = v.<org.apache.ibatis.mapping.CacheBuilder: boolean blocking>;
if v == 0 goto label;
v = new org.apache.ibatis.cache.decorators.BlockingCache;
specialinvoke v.<org.apache.ibatis.cache.decorators.BlockingCache: void <init>(org.apache.ibatis.cache.Cache)>(v);
v = v;
label:
return v;
label:
v := @caughtexception;
v = new org.apache.ibatis.cache.CacheException;
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Error building standard cache decorators.  Cause: \u0001");
specialinvoke v.<org.apache.ibatis.cache.CacheException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.Exception from label to label with label;
}
private void setCacheProperties(org.apache.ibatis.cache.Cache)
{
java.lang.Float v;
org.apache.ibatis.cache.CacheException v, v;
java.lang.Integer v;
java.lang.Long v;
java.lang.Short v;
java.lang.Byte v;
boolean v, v, v;
java.util.Set v;
java.lang.Exception v;
org.apache.ibatis.mapping.CacheBuilder v;
java.lang.Double v;
java.lang.Boolean v;
java.lang.String v, v, v, v, v;
java.util.Properties v, v;
java.util.Iterator v;
org.apache.ibatis.cache.Cache v;
java.lang.Class v, v, v, v, v, v, v, v, v, v, v;
java.lang.Object v, v, v;
org.apache.ibatis.reflection.MetaObject v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: org.apache.ibatis.cache.Cache;
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.util.Properties properties>;
if v == null goto label;
v = staticinvoke <org.apache.ibatis.reflection.SystemMetaObject: org.apache.ibatis.reflection.MetaObject forObject(java.lang.Object)>(v);
v = v.<org.apache.ibatis.mapping.CacheBuilder: java.util.Properties properties>;
v = virtualinvoke v.<java.util.Properties: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.MetaObject: boolean hasSetter(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.ibatis.reflection.MetaObject: java.lang.Class getSetterType(java.lang.String)>(v);
if class "Ljava/lang/String;" != v goto label;
virtualinvoke v.<org.apache.ibatis.reflection.MetaObject: void setValue(java.lang.String,java.lang.Object)>(v, v);
goto label;
label:
v = <java.lang.Integer: java.lang.Class TYPE>;
if v == v goto label;
if class "Ljava/lang/Integer;" != v goto label;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(java.lang.String)>(v);
virtualinvoke v.<org.apache.ibatis.reflection.MetaObject: void setValue(java.lang.String,java.lang.Object)>(v, v);
goto label;
label:
v = <java.lang.Long: java.lang.Class TYPE>;
if v == v goto label;
if class "Ljava/lang/Long;" != v goto label;
label:
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(java.lang.String)>(v);
virtualinvoke v.<org.apache.ibatis.reflection.MetaObject: void setValue(java.lang.String,java.lang.Object)>(v, v);
goto label;
label:
v = <java.lang.Short: java.lang.Class TYPE>;
if v == v goto label;
if class "Ljava/lang/Short;" != v goto label;
label:
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(java.lang.String)>(v);
virtualinvoke v.<org.apache.ibatis.reflection.MetaObject: void setValue(java.lang.String,java.lang.Object)>(v, v);
goto label;
label:
v = <java.lang.Byte: java.lang.Class TYPE>;
if v == v goto label;
if class "Ljava/lang/Byte;" != v goto label;
label:
v = staticinvoke <java.lang.Byte: java.lang.Byte valueOf(java.lang.String)>(v);
virtualinvoke v.<org.apache.ibatis.reflection.MetaObject: void setValue(java.lang.String,java.lang.Object)>(v, v);
goto label;
label:
v = <java.lang.Float: java.lang.Class TYPE>;
if v == v goto label;
if class "Ljava/lang/Float;" != v goto label;
label:
v = staticinvoke <java.lang.Float: java.lang.Float valueOf(java.lang.String)>(v);
virtualinvoke v.<org.apache.ibatis.reflection.MetaObject: void setValue(java.lang.String,java.lang.Object)>(v, v);
goto label;
label:
v = <java.lang.Boolean: java.lang.Class TYPE>;
if v == v goto label;
if class "Ljava/lang/Boolean;" != v goto label;
label:
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(java.lang.String)>(v);
virtualinvoke v.<org.apache.ibatis.reflection.MetaObject: void setValue(java.lang.String,java.lang.Object)>(v, v);
goto label;
label:
v = <java.lang.Double: java.lang.Class TYPE>;
if v == v goto label;
if class "Ljava/lang/Double;" != v goto label;
label:
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(java.lang.String)>(v);
virtualinvoke v.<org.apache.ibatis.reflection.MetaObject: void setValue(java.lang.String,java.lang.Object)>(v, v);
goto label;
label:
v = new org.apache.ibatis.cache.CacheException;
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unsupported property type for cache: \'\u0001\' of type \u0001");
specialinvoke v.<org.apache.ibatis.cache.CacheException: void <init>(java.lang.String)>(v);
throw v;
label:
v = class "Lorg/apache/ibatis/builder/InitializingObject;";
v = interfaceinvoke v.<org.apache.ibatis.cache.Cache: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
label:
interfaceinvoke v.<org.apache.ibatis.builder.InitializingObject: void initialize()>();
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.ibatis.cache.CacheException;
v = interfaceinvoke v.<org.apache.ibatis.cache.Cache: java.lang.String getId()>();
v = interfaceinvoke v.<org.apache.ibatis.cache.Cache: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed cache initialization for \'\u0001\' on \'\u0001\'");
specialinvoke v.<org.apache.ibatis.cache.CacheException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
}
private org.apache.ibatis.cache.Cache newBaseCacheInstance(java.lang.Class, java.lang.String)
{
java.lang.Object[] v;
org.apache.ibatis.cache.CacheException v;
java.lang.reflect.Constructor v;
java.lang.Exception v;
org.apache.ibatis.mapping.CacheBuilder v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v, v, v, v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.String;
v = specialinvoke v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.reflect.Constructor getBaseCacheConstructor(java.lang.Class)>(v);
label:
v = newarray (java.lang.Object)[1];
v[0] = v;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
label:
return v;
label:
v := @caughtexception;
v = new org.apache.ibatis.cache.CacheException;
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not instantiate cache implementation (\u). Cause: \u0001");
specialinvoke v.<org.apache.ibatis.cache.CacheException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.Exception from label to label with label;
}
private java.lang.reflect.Constructor getBaseCacheConstructor(java.lang.Class)
{
java.lang.Class[] v;
org.apache.ibatis.cache.CacheException v;
java.lang.reflect.Constructor v;
java.lang.Exception v;
org.apache.ibatis.mapping.CacheBuilder v;
java.lang.Class v;
java.lang.String v, v, v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: java.lang.Class;
label:
v = newarray (java.lang.Class)[1];
v[0] = class "Ljava/lang/String;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
label:
return v;
label:
v := @caughtexception;
v = new org.apache.ibatis.cache.CacheException;
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid base cache implementation (\u).  Base cache implementations must have a constructor that takes a String id as a parameter.  Cause: \u0001");
specialinvoke v.<org.apache.ibatis.cache.CacheException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.Exception from label to label with label;
}
private org.apache.ibatis.cache.Cache newCacheDecoratorInstance(java.lang.Class, org.apache.ibatis.cache.Cache)
{
java.lang.Object[] v;
org.apache.ibatis.cache.Cache v;
org.apache.ibatis.cache.CacheException v;
java.lang.reflect.Constructor v;
java.lang.Exception v;
org.apache.ibatis.mapping.CacheBuilder v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v, v, v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: java.lang.Class;
v := @parameter: org.apache.ibatis.cache.Cache;
v = specialinvoke v.<org.apache.ibatis.mapping.CacheBuilder: java.lang.reflect.Constructor getCacheDecoratorConstructor(java.lang.Class)>(v);
label:
v = newarray (java.lang.Object)[1];
v[0] = v;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
label:
return v;
label:
v := @caughtexception;
v = new org.apache.ibatis.cache.CacheException;
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not instantiate cache decorator (\u). Cause: \u0001");
specialinvoke v.<org.apache.ibatis.cache.CacheException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.Exception from label to label with label;
}
private java.lang.reflect.Constructor getCacheDecoratorConstructor(java.lang.Class)
{
java.lang.Class[] v;
org.apache.ibatis.cache.CacheException v;
java.lang.reflect.Constructor v;
java.lang.Exception v;
org.apache.ibatis.mapping.CacheBuilder v;
java.lang.Class v;
java.lang.String v, v, v;
v := @this: org.apache.ibatis.mapping.CacheBuilder;
v := @parameter: java.lang.Class;
label:
v = newarray (java.lang.Class)[1];
v[0] = class "Lorg/apache/ibatis/cache/Cache;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
label:
return v;
label:
v := @caughtexception;
v = new org.apache.ibatis.cache.CacheException;
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid cache decorator (\u).  Cache decorators must have a constructor that takes a Cache instance as a parameter.  Cause: \u0001");
specialinvoke v.<org.apache.ibatis.cache.CacheException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.Exception from label to label with label;
}
}