public class org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator extends java.lang.Object implements org.apache.ibatis.executor.keygen.KeyGenerator
{
private static final java.lang.String SECOND_GENERIC_PARAM_NAME;
public static final org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator INSTANCE;
private static final java.lang.String MSG_TOO_MANY_KEYS;
public void <init>()
{
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator v;
v := @this: org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public void processBefore(org.apache.ibatis.executor.Executor, org.apache.ibatis.mapping.MappedStatement, java.sql.Statement, java.lang.Object)
{
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.mapping.MappedStatement v;
java.sql.Statement v;
java.lang.Object v;
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator v;
v := @this: org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator;
v := @parameter: org.apache.ibatis.executor.Executor;
v := @parameter: org.apache.ibatis.mapping.MappedStatement;
v := @parameter: java.sql.Statement;
v := @parameter: java.lang.Object;
return;
}
public void processAfter(org.apache.ibatis.executor.Executor, org.apache.ibatis.mapping.MappedStatement, java.sql.Statement, java.lang.Object)
{
org.apache.ibatis.executor.Executor v;
org.apache.ibatis.mapping.MappedStatement v;
java.sql.Statement v;
java.lang.Object v;
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator v;
v := @this: org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator;
v := @parameter: org.apache.ibatis.executor.Executor;
v := @parameter: org.apache.ibatis.mapping.MappedStatement;
v := @parameter: java.sql.Statement;
v := @parameter: java.lang.Object;
virtualinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: void processBatch(org.apache.ibatis.mapping.MappedStatement,java.sql.Statement,java.lang.Object)>(v, v, v);
return;
}
public void processBatch(org.apache.ibatis.mapping.MappedStatement, java.sql.Statement, java.lang.Object)
{
java.lang.Throwable v;
org.apache.ibatis.executor.ExecutorException v;
java.lang.String[] v;
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator v;
java.lang.Exception v;
java.sql.ResultSet v;
org.apache.ibatis.mapping.MappedStatement v;
int v, v, v;
java.sql.Statement v;
org.apache.ibatis.session.Configuration v;
java.lang.Object v;
java.lang.String v;
java.sql.ResultSetMetaData v;
v := @this: org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator;
v := @parameter: org.apache.ibatis.mapping.MappedStatement;
v := @parameter: java.sql.Statement;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<org.apache.ibatis.mapping.MappedStatement: java.lang.String[] getKeyProperties()>();
if v == null goto label;
v = lengthof v;
if v != 0 goto label;
label:
return;
label:
v = interfaceinvoke v.<java.sql.Statement: java.sql.ResultSet getGeneratedKeys()>();
label:
v = interfaceinvoke v.<java.sql.ResultSet: java.sql.ResultSetMetaData getMetaData()>();
v = virtualinvoke v.<org.apache.ibatis.mapping.MappedStatement: org.apache.ibatis.session.Configuration getConfiguration()>();
v = interfaceinvoke v.<java.sql.ResultSetMetaData: int getColumnCount()>();
v = lengthof v;
if v < v goto label;
specialinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: void assignKeys(org.apache.ibatis.session.Configuration,java.sql.ResultSet,java.sql.ResultSetMetaData,java.lang.String[],java.lang.Object)>(v, v, v, v, v);
label:
interfaceinvoke v.<java.sql.ResultSet: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new org.apache.ibatis.executor.ExecutorException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Exception)>(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 getting generated key or setting result to parameter object. Cause: \u0001");
specialinvoke v.<org.apache.ibatis.executor.ExecutorException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
}
private void assignKeys(org.apache.ibatis.session.Configuration, java.sql.ResultSet, java.sql.ResultSetMetaData, java.lang.String[], java.lang.Object) throws java.sql.SQLException
{
java.lang.String[] v;
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator v;
java.sql.ResultSet v;
org.apache.ibatis.session.Configuration v;
java.lang.Object v, v;
java.sql.ResultSetMetaData v;
boolean v, v, v, v, v;
v := @this: org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator;
v := @parameter: org.apache.ibatis.session.Configuration;
v := @parameter: java.sql.ResultSet;
v := @parameter: java.sql.ResultSetMetaData;
v := @parameter: java.lang.String[];
v := @parameter: java.lang.Object;
v = v instanceof org.apache.ibatis.binding.MapperMethod$ParamMap;
if v != 0 goto label;
v = v instanceof org.apache.ibatis.session.defaults.DefaultSqlSession$StrictMap;
if v == 0 goto label;
label:
specialinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: void assignKeysToParamMap(org.apache.ibatis.session.Configuration,java.sql.ResultSet,java.sql.ResultSetMetaData,java.lang.String[],java.util.Map)>(v, v, v, v, v);
goto label;
label:
v = v instanceof java.util.ArrayList;
if v == 0 goto label;
v = virtualinvoke v.<java.util.ArrayList: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<java.util.ArrayList: java.lang.Object get(int)>(0);
v = v instanceof org.apache.ibatis.binding.MapperMethod$ParamMap;
if v == 0 goto label;
specialinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: void assignKeysToParamMapList(org.apache.ibatis.session.Configuration,java.sql.ResultSet,java.sql.ResultSetMetaData,java.lang.String[],java.util.ArrayList)>(v, v, v, v, v);
goto label;
label:
specialinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: void assignKeysToParam(org.apache.ibatis.session.Configuration,java.sql.ResultSet,java.sql.ResultSetMetaData,java.lang.String[],java.lang.Object)>(v, v, v, v, v);
label:
return;
}
private void assignKeysToParam(org.apache.ibatis.session.Configuration, java.sql.ResultSet, java.sql.ResultSetMetaData, java.lang.String[], java.lang.Object) throws java.sql.SQLException
{
java.lang.Object[] v;
java.lang.String[] v;
java.lang.Integer v;
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator v;
java.util.ArrayList v;
java.sql.ResultSet v;
int v, v, v, v;
org.apache.ibatis.session.Configuration v;
java.lang.String v, v;
boolean v, v, v;
java.util.Iterator v;
java.util.Collection v;
org.apache.ibatis.executor.ExecutorException v;
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$KeyAssigner v;
java.util.function.Consumer v;
java.lang.Object v, v;
java.sql.ResultSetMetaData v;
v := @this: org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator;
v := @parameter: org.apache.ibatis.session.Configuration;
v := @parameter: java.sql.ResultSet;
v := @parameter: java.sql.ResultSetMetaData;
v := @parameter: java.lang.String[];
v := @parameter: java.lang.Object;
v = staticinvoke <org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: java.util.Collection collectionize(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.Collection: boolean isEmpty()>();
if v == 0 goto label;
return;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = new org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$KeyAssigner;
v = v + 1;
v = v[v];
specialinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$KeyAssigner: void <init>(org.apache.ibatis.session.Configuration,java.sql.ResultSetMetaData,int,java.lang.String,java.lang.String)>(v, v, v, null, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v != 0 goto label;
v = new org.apache.ibatis.executor.ExecutorException;
v = newarray (java.lang.Object)[1];
v = interfaceinvoke v.<java.util.Collection: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Too many keys are generated. There are only %d target objects. You either specified a wrong \'keyProperty\' or encountered a driver bug like #1523.", v);
specialinvoke v.<org.apache.ibatis.executor.ExecutorException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$lambda_assignKeysToParam_0__20: java.util.function.Consumer bootstrap$(java.sql.ResultSet,java.lang.Object)>(v, v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
goto label;
label:
return;
}
private void assignKeysToParamMapList(org.apache.ibatis.session.Configuration, java.sql.ResultSet, java.sql.ResultSetMetaData, java.lang.String[], java.util.ArrayList) throws java.sql.SQLException
{
java.lang.Object[] v;
java.lang.String[] v;
long v;
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator v;
java.util.ArrayList v, v;
java.lang.Long v;
java.sql.ResultSet v;
int v, v, v;
org.apache.ibatis.session.Configuration v;
java.lang.String v, v;
boolean v, v, v;
java.util.Map$Entry v;
java.util.Iterator v;
org.apache.ibatis.executor.ExecutorException v;
java.util.function.Consumer v;
java.lang.Object v, v;
java.sql.ResultSetMetaData v;
v := @this: org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator;
v := @parameter: org.apache.ibatis.session.Configuration;
v := @parameter: java.sql.ResultSet;
v := @parameter: java.sql.ResultSetMetaData;
v := @parameter: java.lang.String[];
v := @parameter: java.util.ArrayList;
v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = 0L;
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v != 0 goto label;
v = new org.apache.ibatis.executor.ExecutorException;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Too many keys are generated. There are only %d target objects. You either specified a wrong \'keyProperty\' or encountered a driver bug like #1523.", v);
specialinvoke v.<org.apache.ibatis.executor.ExecutorException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v + 1;
v = v[v];
v = specialinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: java.util.Map$Entry getAssignerForParamMap(org.apache.ibatis.session.Configuration,java.sql.ResultSetMetaData,int,java.util.Map,java.lang.String,java.lang.String[],boolean)>(v, v, v, v, v, v, 0);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$lambda_assignKeysToParamMapList_1__21: java.util.function.Consumer bootstrap$(java.sql.ResultSet,org.apache.ibatis.binding.MapperMethod$ParamMap)>(v, v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
v = v + 1L;
goto label;
label:
return;
}
private void assignKeysToParamMap(org.apache.ibatis.session.Configuration, java.sql.ResultSet, java.sql.ResultSetMetaData, java.lang.String[], java.util.Map) throws java.sql.SQLException
{
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator v;
java.lang.Long v;
java.sql.ResultSet v;
java.util.Map v;
boolean v, v, v, v;
java.util.Collection v;
org.apache.ibatis.executor.ExecutorException v;
java.sql.ResultSetMetaData v;
java.lang.Object[] v;
java.lang.String[] v;
java.util.HashMap v;
long v;
java.util.function.Function v;
int v, v, v;
org.apache.ibatis.session.Configuration v;
java.lang.String v, v;
java.util.Map$Entry v;
java.util.Iterator v;
java.util.function.Consumer v;
java.lang.Object v, v, v, v, v, v, v, v, v;
v := @this: org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator;
v := @parameter: org.apache.ibatis.session.Configuration;
v := @parameter: java.sql.ResultSet;
v := @parameter: java.sql.ResultSetMetaData;
v := @parameter: java.lang.String[];
v := @parameter: java.util.Map;
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v == 0 goto label;
return;
label:
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v + 1;
v = v[v];
v = specialinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: java.util.Map$Entry getAssignerForParamMap(org.apache.ibatis.session.Configuration,java.sql.ResultSetMetaData,int,java.util.Map,java.lang.String,java.lang.String[],boolean)>(v, v, v, v, v, v, 1);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = staticinvoke <org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$lambda_assignKeysToParamMap_2__23: java.util.function.Function bootstrap$(java.util.Map)>(v);
v = staticinvoke <org.apache.ibatis.util.MapUtil: java.lang.Object computeIfAbsent(java.util.Map,java.lang.Object,java.util.function.Function)>(v, v, v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = 0L;
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: 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.Iterator: boolean hasNext()>();
if v != 0 goto label;
v = new org.apache.ibatis.executor.ExecutorException;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Too many keys are generated. There are only %d target objects. You either specified a wrong \'keyProperty\' or encountered a driver bug like #1523.", v);
specialinvoke v.<org.apache.ibatis.executor.ExecutorException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$lambda_assignKeysToParamMap_3__22: java.util.function.Consumer bootstrap$(java.sql.ResultSet,java.lang.Object)>(v, v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
goto label;
label:
v = v + 1L;
goto label;
label:
return;
}
private java.util.Map$Entry getAssignerForParamMap(org.apache.ibatis.session.Configuration, java.sql.ResultSetMetaData, int, java.util.Map, java.lang.String, java.lang.String[], boolean)
{
java.lang.String[] v;
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator v;
java.util.Map v;
int v, v, v, v;
org.apache.ibatis.session.Configuration v;
java.lang.String v, v, v, v, v, v, v, v;
boolean v, v, v, v;
java.util.Map$Entry v, v, v;
org.apache.ibatis.executor.ExecutorException v, v;
java.util.Set v;
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$KeyAssigner v;
java.sql.ResultSetMetaData v;
v := @this: org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator;
v := @parameter: org.apache.ibatis.session.Configuration;
v := @parameter: java.sql.ResultSetMetaData;
v := @parameter: int;
v := @parameter: java.util.Map;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String[];
v := @parameter: boolean;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>("param2");
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(46);
v = (int) -1;
if v != v goto label;
if v == 0 goto label;
v = specialinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: java.util.Map$Entry getAssignerForSingleParam(org.apache.ibatis.session.Configuration,java.sql.ResultSetMetaData,int,java.util.Map,java.lang.String,boolean)>(v, v, v, v, v, v);
return v;
label:
v = new org.apache.ibatis.executor.ExecutorException;
v = staticinvoke <org.apache.ibatis.reflection.ArrayUtil: java.lang.String toString(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.util.Set)>(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 determine which parameter to assign generated keys to. Note that when there are multiple parameters, \'keyProperty\' must include the parameter name (e.g. \'param.id\'). Specified key properties are \u and available parameters are \u0001");
specialinvoke v.<org.apache.ibatis.executor.ExecutorException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
if v == 0 goto label;
v = null;
goto label;
label:
v = v;
label:
v = v + 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
v = new org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$KeyAssigner;
specialinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$KeyAssigner: void <init>(org.apache.ibatis.session.Configuration,java.sql.ResultSetMetaData,int,java.lang.String,java.lang.String)>(v, v, v, v, v);
v = staticinvoke <org.apache.ibatis.util.MapUtil: java.util.Map$Entry entry(java.lang.Object,java.lang.Object)>(v, v);
return v;
label:
if v == 0 goto label;
v = specialinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: java.util.Map$Entry getAssignerForSingleParam(org.apache.ibatis.session.Configuration,java.sql.ResultSetMetaData,int,java.util.Map,java.lang.String,boolean)>(v, v, v, v, v, v);
return v;
label:
v = new org.apache.ibatis.executor.ExecutorException;
v = staticinvoke <org.apache.ibatis.reflection.ArrayUtil: java.lang.String toString(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.util.Set)>(v, 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 find parameter \'\u0001\'. Note that when there are multiple parameters, \'keyProperty\' must include the parameter name (e.g. \'param.id\'). Specified key properties are \u and available parameters are \u0001");
specialinvoke v.<org.apache.ibatis.executor.ExecutorException: void <init>(java.lang.String)>(v);
throw v;
}
private java.util.Map$Entry getAssignerForSingleParam(org.apache.ibatis.session.Configuration, java.sql.ResultSetMetaData, int, java.util.Map, java.lang.String, boolean)
{
java.util.Map$Entry v;
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator v;
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$KeyAssigner v;
java.util.Map v;
int v;
org.apache.ibatis.session.Configuration v;
java.lang.String v, v, v;
java.sql.ResultSetMetaData v;
boolean v;
v := @this: org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator;
v := @parameter: org.apache.ibatis.session.Configuration;
v := @parameter: java.sql.ResultSetMetaData;
v := @parameter: int;
v := @parameter: java.util.Map;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = staticinvoke <org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: java.lang.String nameOfSingleParam(java.util.Map)>(v);
if v == 0 goto label;
v = null;
goto label;
label:
v = v;
label:
v = new org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$KeyAssigner;
specialinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator$KeyAssigner: void <init>(org.apache.ibatis.session.Configuration,java.sql.ResultSetMetaData,int,java.lang.String,java.lang.String)>(v, v, v, v, v);
v = staticinvoke <org.apache.ibatis.util.MapUtil: java.util.Map$Entry entry(java.lang.Object,java.lang.Object)>(v, v);
return v;
}
private static java.lang.String nameOfSingleParam(java.util.Map)
{
java.util.Iterator v;
java.util.Map v;
java.util.Set v;
java.lang.Object v;
v := @parameter: java.util.Map;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
return v;
}
private static java.util.Collection collectionize(java.lang.Object)
{
java.util.List v, v;
java.lang.Object[] v;
java.lang.Object v;
boolean v, v;
v := @parameter: java.lang.Object;
v = v instanceof java.util.Collection;
if v == 0 goto label;
return v;
label:
v = v instanceof java.lang.Object[];
if v == 0 goto label;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
return v;
label:
v = newarray (java.lang.Object)[1];
v[0] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
return v;
}
static void <clinit>()
{
org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator v;
v = new org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator;
specialinvoke v.<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: void <init>()>();
<org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator: org.apache.ibatis.executor.keygen.Jdbc3KeyGenerator INSTANCE> = v;
return;
}
}