public class org.apache.ibatis.executor.CachingExecutor extends java.lang.Object implements org.apache.ibatis.executor.Executor
{
private final org.apache.ibatis.executor.Executor delegate;
private final org.apache.ibatis.cache.TransactionalCacheManager tcm;
public void <init>(org.apache.ibatis.executor.Executor)
{
org.apache.ibatis.cache.TransactionalCacheManager v;
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.executor.CachingExecutor v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: org.apache.ibatis.executor.Executor;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new org.apache.ibatis.cache.TransactionalCacheManager;
specialinvoke v.<org.apache.ibatis.cache.TransactionalCacheManager: void <init>()>();
v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.cache.TransactionalCacheManager tcm> = v;
v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate> = v;
interfaceinvoke v.<org.apache.ibatis.executor.Executor: void setExecutorWrapper(org.apache.ibatis.executor.Executor)>(v);
return;
}
public org.apache.ibatis.transaction.Transaction getTransaction()
{
org.apache.ibatis.transaction.Transaction v;
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.executor.CachingExecutor v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
v = interfaceinvoke v.<org.apache.ibatis.executor.Executor: org.apache.ibatis.transaction.Transaction getTransaction()>();
return v;
}
public void close(boolean)
{
java.lang.Throwable v;
org.apache.ibatis.cache.TransactionalCacheManager v, v;
org.apache.ibatis.executor.Executor v, v;
org.apache.ibatis.executor.CachingExecutor v;
boolean v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: boolean;
label:
if v == 0 goto label;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.cache.TransactionalCacheManager tcm>;
virtualinvoke v.<org.apache.ibatis.cache.TransactionalCacheManager: void rollback()>();
goto label;
label:
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.cache.TransactionalCacheManager tcm>;
virtualinvoke v.<org.apache.ibatis.cache.TransactionalCacheManager: void commit()>();
label:
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
interfaceinvoke v.<org.apache.ibatis.executor.Executor: void close(boolean)>(v);
goto label;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
interfaceinvoke v.<org.apache.ibatis.executor.Executor: void close(boolean)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public boolean isClosed()
{
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.executor.CachingExecutor v;
boolean v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
v = interfaceinvoke v.<org.apache.ibatis.executor.Executor: boolean isClosed()>();
return v;
}
public int update(org.apache.ibatis.mapping.MappedStatement, java.lang.Object) throws java.sql.SQLException
{
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.executor.CachingExecutor v;
org.apache.ibatis.mapping.MappedStatement v;
int v;
java.lang.Object v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: org.apache.ibatis.mapping.MappedStatement;
v := @parameter: java.lang.Object;
specialinvoke v.<org.apache.ibatis.executor.CachingExecutor: void flushCacheIfRequired(org.apache.ibatis.mapping.MappedStatement)>(v);
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
v = interfaceinvoke v.<org.apache.ibatis.executor.Executor: int update(org.apache.ibatis.mapping.MappedStatement,java.lang.Object)>(v, v);
return v;
}
public org.apache.ibatis.cursor.Cursor queryCursor(org.apache.ibatis.mapping.MappedStatement, java.lang.Object, org.apache.ibatis.session.RowBounds) throws java.sql.SQLException
{
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.executor.CachingExecutor v;
org.apache.ibatis.mapping.MappedStatement v;
org.apache.ibatis.cursor.Cursor v;
java.lang.Object v;
org.apache.ibatis.session.RowBounds v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: org.apache.ibatis.mapping.MappedStatement;
v := @parameter: java.lang.Object;
v := @parameter: org.apache.ibatis.session.RowBounds;
specialinvoke v.<org.apache.ibatis.executor.CachingExecutor: void flushCacheIfRequired(org.apache.ibatis.mapping.MappedStatement)>(v);
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
v = interfaceinvoke v.<org.apache.ibatis.executor.Executor: org.apache.ibatis.cursor.Cursor queryCursor(org.apache.ibatis.mapping.MappedStatement,java.lang.Object,org.apache.ibatis.session.RowBounds)>(v, v, v);
return v;
}
public java.util.List query(org.apache.ibatis.mapping.MappedStatement, java.lang.Object, org.apache.ibatis.session.RowBounds, org.apache.ibatis.session.ResultHandler) throws java.sql.SQLException
{
org.apache.ibatis.executor.CachingExecutor v;
org.apache.ibatis.session.ResultHandler v;
org.apache.ibatis.session.RowBounds v;
java.util.List v;
org.apache.ibatis.mapping.BoundSql v;
org.apache.ibatis.cache.CacheKey v;
org.apache.ibatis.mapping.MappedStatement v;
java.lang.Object v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: org.apache.ibatis.mapping.MappedStatement;
v := @parameter: java.lang.Object;
v := @parameter: org.apache.ibatis.session.RowBounds;
v := @parameter: org.apache.ibatis.session.ResultHandler;
v = virtualinvoke v.<org.apache.ibatis.mapping.MappedStatement: org.apache.ibatis.mapping.BoundSql getBoundSql(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.cache.CacheKey createCacheKey(org.apache.ibatis.mapping.MappedStatement,java.lang.Object,org.apache.ibatis.session.RowBounds,org.apache.ibatis.mapping.BoundSql)>(v, v, v, v);
v = virtualinvoke v.<org.apache.ibatis.executor.CachingExecutor: java.util.List query(org.apache.ibatis.mapping.MappedStatement,java.lang.Object,org.apache.ibatis.session.RowBounds,org.apache.ibatis.session.ResultHandler,org.apache.ibatis.cache.CacheKey,org.apache.ibatis.mapping.BoundSql)>(v, v, v, v, v, v);
return v;
}
public java.util.List query(org.apache.ibatis.mapping.MappedStatement, java.lang.Object, org.apache.ibatis.session.RowBounds, org.apache.ibatis.session.ResultHandler, org.apache.ibatis.cache.CacheKey, org.apache.ibatis.mapping.BoundSql) throws java.sql.SQLException
{
org.apache.ibatis.executor.Executor v, v;
org.apache.ibatis.executor.CachingExecutor v;
org.apache.ibatis.cache.Cache v;
org.apache.ibatis.session.ResultHandler v;
org.apache.ibatis.session.RowBounds v;
org.apache.ibatis.cache.TransactionalCacheManager v, v;
java.util.List v;
org.apache.ibatis.mapping.BoundSql v;
org.apache.ibatis.cache.CacheKey v;
org.apache.ibatis.mapping.MappedStatement v;
java.lang.Object v, v;
boolean v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: org.apache.ibatis.mapping.MappedStatement;
v := @parameter: java.lang.Object;
v := @parameter: org.apache.ibatis.session.RowBounds;
v := @parameter: org.apache.ibatis.session.ResultHandler;
v := @parameter: org.apache.ibatis.cache.CacheKey;
v := @parameter: org.apache.ibatis.mapping.BoundSql;
v = virtualinvoke v.<org.apache.ibatis.mapping.MappedStatement: org.apache.ibatis.cache.Cache getCache()>();
if v == null goto label;
specialinvoke v.<org.apache.ibatis.executor.CachingExecutor: void flushCacheIfRequired(org.apache.ibatis.mapping.MappedStatement)>(v);
v = virtualinvoke v.<org.apache.ibatis.mapping.MappedStatement: boolean isUseCache()>();
if v == 0 goto label;
if v != null goto label;
specialinvoke v.<org.apache.ibatis.executor.CachingExecutor: void ensureNoOutParams(org.apache.ibatis.mapping.MappedStatement,org.apache.ibatis.mapping.BoundSql)>(v, v);
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.cache.TransactionalCacheManager tcm>;
v = virtualinvoke v.<org.apache.ibatis.cache.TransactionalCacheManager: java.lang.Object getObject(org.apache.ibatis.cache.Cache,org.apache.ibatis.cache.CacheKey)>(v, v);
if v != null goto label;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
v = interfaceinvoke v.<org.apache.ibatis.executor.Executor: java.util.List query(org.apache.ibatis.mapping.MappedStatement,java.lang.Object,org.apache.ibatis.session.RowBounds,org.apache.ibatis.session.ResultHandler,org.apache.ibatis.cache.CacheKey,org.apache.ibatis.mapping.BoundSql)>(v, v, v, v, v, v);
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.cache.TransactionalCacheManager tcm>;
virtualinvoke v.<org.apache.ibatis.cache.TransactionalCacheManager: void putObject(org.apache.ibatis.cache.Cache,org.apache.ibatis.cache.CacheKey,java.lang.Object)>(v, v, v);
label:
return v;
label:
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
v = interfaceinvoke v.<org.apache.ibatis.executor.Executor: java.util.List query(org.apache.ibatis.mapping.MappedStatement,java.lang.Object,org.apache.ibatis.session.RowBounds,org.apache.ibatis.session.ResultHandler,org.apache.ibatis.cache.CacheKey,org.apache.ibatis.mapping.BoundSql)>(v, v, v, v, v, v);
return v;
}
public java.util.List flushStatements() throws java.sql.SQLException
{
java.util.List v;
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.executor.CachingExecutor v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
v = interfaceinvoke v.<org.apache.ibatis.executor.Executor: java.util.List flushStatements()>();
return v;
}
public void commit(boolean) throws java.sql.SQLException
{
org.apache.ibatis.cache.TransactionalCacheManager v;
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.executor.CachingExecutor v;
boolean v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: boolean;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
interfaceinvoke v.<org.apache.ibatis.executor.Executor: void commit(boolean)>(v);
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.cache.TransactionalCacheManager tcm>;
virtualinvoke v.<org.apache.ibatis.cache.TransactionalCacheManager: void commit()>();
return;
}
public void rollback(boolean) throws java.sql.SQLException
{
java.lang.Throwable v;
org.apache.ibatis.cache.TransactionalCacheManager v, v;
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.executor.CachingExecutor v;
boolean v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: boolean;
label:
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
interfaceinvoke v.<org.apache.ibatis.executor.Executor: void rollback(boolean)>(v);
label:
if v == 0 goto label;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.cache.TransactionalCacheManager tcm>;
virtualinvoke v.<org.apache.ibatis.cache.TransactionalCacheManager: void rollback()>();
goto label;
label:
v := @caughtexception;
if v == 0 goto label;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.cache.TransactionalCacheManager tcm>;
virtualinvoke v.<org.apache.ibatis.cache.TransactionalCacheManager: void rollback()>();
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void ensureNoOutParams(org.apache.ibatis.mapping.MappedStatement, org.apache.ibatis.mapping.BoundSql)
{
java.util.Iterator v;
org.apache.ibatis.executor.CachingExecutor v;
org.apache.ibatis.executor.ExecutorException v;
org.apache.ibatis.mapping.ParameterMode v, v;
org.apache.ibatis.mapping.StatementType v, v;
java.util.List v;
org.apache.ibatis.mapping.BoundSql v;
org.apache.ibatis.mapping.MappedStatement v;
java.lang.Object v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: org.apache.ibatis.mapping.MappedStatement;
v := @parameter: org.apache.ibatis.mapping.BoundSql;
v = virtualinvoke v.<org.apache.ibatis.mapping.MappedStatement: org.apache.ibatis.mapping.StatementType getStatementType()>();
v = <org.apache.ibatis.mapping.StatementType: org.apache.ibatis.mapping.StatementType CALLABLE>;
if v != v goto label;
v = virtualinvoke v.<org.apache.ibatis.mapping.BoundSql: java.util.List getParameterMappings()>();
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 = virtualinvoke v.<org.apache.ibatis.mapping.ParameterMapping: org.apache.ibatis.mapping.ParameterMode getMode()>();
v = <org.apache.ibatis.mapping.ParameterMode: org.apache.ibatis.mapping.ParameterMode IN>;
if v == v goto label;
v = new org.apache.ibatis.executor.ExecutorException;
v = virtualinvoke v.<org.apache.ibatis.mapping.MappedStatement: java.lang.String getId()>();
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[])>("Caching stored procedures with OUT params is not supported.  Please configure useCache=false in \u statement.");
specialinvoke v.<org.apache.ibatis.executor.ExecutorException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
public org.apache.ibatis.cache.CacheKey createCacheKey(org.apache.ibatis.mapping.MappedStatement, java.lang.Object, org.apache.ibatis.session.RowBounds, org.apache.ibatis.mapping.BoundSql)
{
org.apache.ibatis.mapping.BoundSql v;
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.cache.CacheKey v;
org.apache.ibatis.executor.CachingExecutor v;
org.apache.ibatis.mapping.MappedStatement v;
java.lang.Object v;
org.apache.ibatis.session.RowBounds v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: org.apache.ibatis.mapping.MappedStatement;
v := @parameter: java.lang.Object;
v := @parameter: org.apache.ibatis.session.RowBounds;
v := @parameter: org.apache.ibatis.mapping.BoundSql;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
v = interfaceinvoke v.<org.apache.ibatis.executor.Executor: org.apache.ibatis.cache.CacheKey createCacheKey(org.apache.ibatis.mapping.MappedStatement,java.lang.Object,org.apache.ibatis.session.RowBounds,org.apache.ibatis.mapping.BoundSql)>(v, v, v, v);
return v;
}
public boolean isCached(org.apache.ibatis.mapping.MappedStatement, org.apache.ibatis.cache.CacheKey)
{
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.cache.CacheKey v;
org.apache.ibatis.executor.CachingExecutor v;
org.apache.ibatis.mapping.MappedStatement v;
boolean v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: org.apache.ibatis.mapping.MappedStatement;
v := @parameter: org.apache.ibatis.cache.CacheKey;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
v = interfaceinvoke v.<org.apache.ibatis.executor.Executor: boolean isCached(org.apache.ibatis.mapping.MappedStatement,org.apache.ibatis.cache.CacheKey)>(v, v);
return v;
}
public void deferLoad(org.apache.ibatis.mapping.MappedStatement, org.apache.ibatis.reflection.MetaObject, java.lang.String, org.apache.ibatis.cache.CacheKey, java.lang.Class)
{
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.cache.CacheKey v;
org.apache.ibatis.executor.CachingExecutor v;
org.apache.ibatis.mapping.MappedStatement v;
java.lang.Class v;
java.lang.String v;
org.apache.ibatis.reflection.MetaObject v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: org.apache.ibatis.mapping.MappedStatement;
v := @parameter: org.apache.ibatis.reflection.MetaObject;
v := @parameter: java.lang.String;
v := @parameter: org.apache.ibatis.cache.CacheKey;
v := @parameter: java.lang.Class;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
interfaceinvoke v.<org.apache.ibatis.executor.Executor: void deferLoad(org.apache.ibatis.mapping.MappedStatement,org.apache.ibatis.reflection.MetaObject,java.lang.String,org.apache.ibatis.cache.CacheKey,java.lang.Class)>(v, v, v, v, v);
return;
}
public void clearLocalCache()
{
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.executor.CachingExecutor v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.executor.Executor delegate>;
interfaceinvoke v.<org.apache.ibatis.executor.Executor: void clearLocalCache()>();
return;
}
private void flushCacheIfRequired(org.apache.ibatis.mapping.MappedStatement)
{
org.apache.ibatis.cache.TransactionalCacheManager v;
org.apache.ibatis.executor.CachingExecutor v;
org.apache.ibatis.cache.Cache v;
org.apache.ibatis.mapping.MappedStatement v;
boolean v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: org.apache.ibatis.mapping.MappedStatement;
v = virtualinvoke v.<org.apache.ibatis.mapping.MappedStatement: org.apache.ibatis.cache.Cache getCache()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.ibatis.mapping.MappedStatement: boolean isFlushCacheRequired()>();
if v == 0 goto label;
v = v.<org.apache.ibatis.executor.CachingExecutor: org.apache.ibatis.cache.TransactionalCacheManager tcm>;
virtualinvoke v.<org.apache.ibatis.cache.TransactionalCacheManager: void clear(org.apache.ibatis.cache.Cache)>(v);
label:
return;
}
public void setExecutorWrapper(org.apache.ibatis.executor.Executor)
{
java.lang.UnsupportedOperationException v;
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.executor.CachingExecutor v;
v := @this: org.apache.ibatis.executor.CachingExecutor;
v := @parameter: org.apache.ibatis.executor.Executor;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("This method should not be called");
throw v;
}
}