public class org.apache.ibatis.binding.MapperMethod$MethodSignature extends java.lang.Object
{
private final boolean returnsMany;
private final boolean returnsMap;
private final boolean returnsVoid;
private final boolean returnsCursor;
private final boolean returnsOptional;
private final java.lang.Class returnType;
private final java.lang.String mapKey;
private final java.lang.Integer resultHandlerIndex;
private final java.lang.Integer rowBoundsIndex;
private final org.apache.ibatis.reflection.ParamNameResolver paramNameResolver;
public void <init>(org.apache.ibatis.session.Configuration, java.lang.Class, java.lang.reflect.Method)
{
org.apache.ibatis.reflection.ParamNameResolver v;
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
java.lang.Integer v, v;
org.apache.ibatis.session.Configuration v;
java.lang.String v, v;
java.lang.reflect.Method v;
boolean v, v, v, v, v, v, v, v, v;
org.apache.ibatis.reflection.factory.ObjectFactory v;
java.lang.reflect.Type v, v;
java.lang.Class v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v := @parameter: org.apache.ibatis.session.Configuration;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.reflect.Method;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <org.apache.ibatis.reflection.TypeParameterResolver: java.lang.reflect.Type resolveReturnType(java.lang.reflect.Method,java.lang.reflect.Type)>(v, v);
v = v instanceof java.lang.Class;
if v == 0 goto label;
v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Class returnType> = v;
goto label;
label:
v = v instanceof java.lang.reflect.ParameterizedType;
if v == 0 goto label;
v = interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type getRawType()>();
v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Class returnType> = v;
goto label;
label:
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getReturnType()>();
v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Class returnType> = v;
label:
v = <java.lang.Void: java.lang.Class TYPE>;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Class returnType>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: boolean returnsVoid> = v;
v = virtualinvoke v.<org.apache.ibatis.session.Configuration: org.apache.ibatis.reflection.factory.ObjectFactory getObjectFactory()>();
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Class returnType>;
v = interfaceinvoke v.<org.apache.ibatis.reflection.factory.ObjectFactory: boolean isCollection(java.lang.Class)>(v);
if v != 0 goto label;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Class returnType>;
v = virtualinvoke v.<java.lang.Class: boolean isArray()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: boolean returnsMany> = v;
v = class "Lorg/apache/ibatis/cursor/Cursor;";
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Class returnType>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: boolean returnsCursor> = v;
v = class "Ljava/util/Optional;";
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Class returnType>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: boolean returnsOptional> = v;
v = specialinvoke v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.String getMapKey(java.lang.reflect.Method)>(v);
v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.String mapKey> = v;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.String mapKey>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: boolean returnsMap> = v;
v = specialinvoke v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Integer getUniqueParamIndex(java.lang.reflect.Method,java.lang.Class)>(v, class "Lorg/apache/ibatis/session/RowBounds;");
v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Integer rowBoundsIndex> = v;
v = specialinvoke v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Integer getUniqueParamIndex(java.lang.reflect.Method,java.lang.Class)>(v, class "Lorg/apache/ibatis/session/ResultHandler;");
v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Integer resultHandlerIndex> = v;
v = new org.apache.ibatis.reflection.ParamNameResolver;
specialinvoke v.<org.apache.ibatis.reflection.ParamNameResolver: void <init>(org.apache.ibatis.session.Configuration,java.lang.reflect.Method)>(v, v);
v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: org.apache.ibatis.reflection.ParamNameResolver paramNameResolver> = v;
return;
}
public java.lang.Object convertArgsToSqlCommandParam(java.lang.Object[])
{
java.lang.Object[] v;
org.apache.ibatis.reflection.ParamNameResolver v;
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
java.lang.Object v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v := @parameter: java.lang.Object[];
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: org.apache.ibatis.reflection.ParamNameResolver paramNameResolver>;
v = virtualinvoke v.<org.apache.ibatis.reflection.ParamNameResolver: java.lang.Object getNamedParams(java.lang.Object[])>(v);
return v;
}
public boolean hasRowBounds()
{
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
java.lang.Integer v;
boolean v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Integer rowBoundsIndex>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public org.apache.ibatis.session.RowBounds extractRowBounds(java.lang.Object[])
{
java.lang.Object[] v;
int v;
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
java.lang.Object v;
java.lang.Integer v;
boolean v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v := @parameter: java.lang.Object[];
v = virtualinvoke v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: boolean hasRowBounds()>();
if v == 0 goto label;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Integer rowBoundsIndex>;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v[v];
goto label;
label:
v = null;
label:
return v;
}
public boolean hasResultHandler()
{
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
java.lang.Integer v;
boolean v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Integer resultHandlerIndex>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public org.apache.ibatis.session.ResultHandler extractResultHandler(java.lang.Object[])
{
java.lang.Object[] v;
int v;
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
java.lang.Object v;
java.lang.Integer v;
boolean v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v := @parameter: java.lang.Object[];
v = virtualinvoke v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: boolean hasResultHandler()>();
if v == 0 goto label;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Integer resultHandlerIndex>;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v[v];
goto label;
label:
v = null;
label:
return v;
}
public java.lang.Class getReturnType()
{
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
java.lang.Class v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.Class returnType>;
return v;
}
public boolean returnsMany()
{
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
boolean v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: boolean returnsMany>;
return v;
}
public boolean returnsMap()
{
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
boolean v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: boolean returnsMap>;
return v;
}
public boolean returnsVoid()
{
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
boolean v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: boolean returnsVoid>;
return v;
}
public boolean returnsCursor()
{
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
boolean v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: boolean returnsCursor>;
return v;
}
public boolean returnsOptional()
{
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
boolean v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: boolean returnsOptional>;
return v;
}
private java.lang.Integer getUniqueParamIndex(java.lang.reflect.Method, java.lang.Class)
{
org.apache.ibatis.binding.BindingException v;
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
java.lang.Class[] v;
java.lang.Integer v;
int v, v;
java.lang.Class v, v;
java.lang.String v, v, v;
java.lang.reflect.Method v;
boolean v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v := @parameter: java.lang.reflect.Method;
v := @parameter: java.lang.Class;
v = null;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getParameterTypes()>();
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
if v == null goto label;
v = new org.apache.ibatis.binding.BindingException;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
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[])>("\u cannot have multiple \u parameters");
specialinvoke v.<org.apache.ibatis.binding.BindingException: void <init>(java.lang.String)>(v);
throw v;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
label:
v = v + 1;
goto label;
label:
return v;
}
public java.lang.String getMapKey()
{
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
java.lang.String v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v = v.<org.apache.ibatis.binding.MapperMethod$MethodSignature: java.lang.String mapKey>;
return v;
}
private java.lang.String getMapKey(java.lang.reflect.Method)
{
java.lang.'annotation'.Annotation v;
org.apache.ibatis.binding.MapperMethod$MethodSignature v;
java.lang.Class v, v;
java.lang.String v;
java.lang.reflect.Method v;
boolean v;
v := @this: org.apache.ibatis.binding.MapperMethod$MethodSignature;
v := @parameter: java.lang.reflect.Method;
v = null;
v = class "Ljava/util/Map;";
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getReturnType()>();
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Lorg/apache/ibatis/annotations/MapKey;");
if v == null goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.MapKey: java.lang.String value()>();
label:
return v;
}
}