public class org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder extends java.lang.Object
{
private static final java.util.Set statementAnnotationTypes;
private final org.apache.ibatis.session.Configuration configuration;
private final org.apache.ibatis.builder.MapperBuilderAssistant assistant;
private final java.lang.Class type;
public void <init>(org.apache.ibatis.session.Configuration, java.lang.Class)
{
org.apache.ibatis.builder.MapperBuilderAssistant v;
org.apache.ibatis.session.Configuration v;
java.lang.Class v;
java.lang.String v, v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: org.apache.ibatis.session.Configuration;
v := @parameter: java.lang.Class;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, 47);
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[])>("\u.java (best guess)");
v = new org.apache.ibatis.builder.MapperBuilderAssistant;
specialinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: void <init>(org.apache.ibatis.session.Configuration,java.lang.String)>(v, v);
v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant> = v;
v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration> = v;
v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type> = v;
return;
}
public void parse()
{
org.apache.ibatis.builder.MapperBuilderAssistant v;
java.lang.reflect.Method[] v;
org.apache.ibatis.builder.IncompleteElementException v;
int v, v;
org.apache.ibatis.session.Configuration v, v, v, v;
java.lang.String v, v;
java.lang.reflect.Method v;
boolean v, v, v;
java.lang.Class[] v;
org.apache.ibatis.builder.'annotation'.MethodResolver v;
java.lang.'annotation'.Annotation v;
java.util.Optional v;
java.lang.Class v, v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.String toString()>();
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
v = virtualinvoke v.<org.apache.ibatis.session.Configuration: boolean isResourceLoaded(java.lang.String)>(v);
if v != 0 goto label;
specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: void loadXmlResource()>();
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
virtualinvoke v.<org.apache.ibatis.session.Configuration: void addLoadedResource(java.lang.String)>(v);
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: void setCurrentNamespace(java.lang.String)>(v);
specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: void parseCache()>();
specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: void parseCacheRef()>();
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method[] getMethods()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: boolean canHaveStatement(java.lang.reflect.Method)>(v);
if v == 0 goto label;
v = newarray (java.lang.Class)[2];
v[0] = class "Lorg/apache/ibatis/annotations/Select;";
v[1] = class "Lorg/apache/ibatis/annotations/SelectProvider;";
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.util.Optional getAnnotationWrapper(java.lang.reflect.Method,boolean,java.lang.Class[])>(v, 0, v);
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
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/ResultMap;");
if v != null goto label;
specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.String parseResultMap(java.lang.reflect.Method)>(v);
label:
virtualinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: void parseStatement(java.lang.reflect.Method)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
v = new org.apache.ibatis.builder.'annotation'.MethodResolver;
specialinvoke v.<org.apache.ibatis.builder.'annotation'.MethodResolver: void <init>(org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder,java.lang.reflect.Method)>(v, v);
virtualinvoke v.<org.apache.ibatis.session.Configuration: void addIncompleteMethod(org.apache.ibatis.builder.'annotation'.MethodResolver)>(v);
label:
v = v + 1;
goto label;
label:
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
virtualinvoke v.<org.apache.ibatis.session.Configuration: void parsePendingMethods(boolean)>(0);
return;
catch org.apache.ibatis.builder.IncompleteElementException from label to label with label;
}
private static boolean canHaveStatement(java.lang.reflect.Method)
{
java.lang.reflect.Method v;
boolean v, v, v;
v := @parameter: java.lang.reflect.Method;
v = virtualinvoke v.<java.lang.reflect.Method: boolean isBridge()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.reflect.Method: boolean isDefault()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void loadXmlResource()
{
org.apache.ibatis.builder.MapperBuilderAssistant v;
java.util.Map v;
org.apache.ibatis.session.Configuration v, v, v;
java.lang.String v, v, v, v, v, v, v;
boolean v;
org.apache.ibatis.builder.xml.XMLMapperBuilder v;
java.io.IOException v;
java.lang.Class v, v, v, v, v;
java.lang.ClassLoader v;
java.io.InputStream v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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[])>("namespace:\u0001");
v = virtualinvoke v.<org.apache.ibatis.session.Configuration: boolean isResourceLoaded(java.lang.String)>(v);
if v != 0 goto label;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, 47);
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[])>("\u.xml");
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
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[])>("/\u0001");
v = virtualinvoke v.<java.lang.Class: java.io.InputStream getResourceAsStream(java.lang.String)>(v);
if v != null goto label;
label:
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = staticinvoke <org.apache.ibatis.io.Resources: java.io.InputStream getResourceAsStream(java.lang.ClassLoader,java.lang.String)>(v, v);
label:
goto label;
label:
v := @caughtexception;
label:
if v == null goto label;
v = new org.apache.ibatis.builder.xml.XMLMapperBuilder;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
v = virtualinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: org.apache.ibatis.session.Configuration getConfiguration()>();
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
v = virtualinvoke v.<org.apache.ibatis.session.Configuration: java.util.Map getSqlFragments()>();
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
specialinvoke v.<org.apache.ibatis.builder.xml.XMLMapperBuilder: void <init>(java.io.InputStream,org.apache.ibatis.session.Configuration,java.lang.String,java.util.Map,java.lang.String)>(v, v, v, v, v);
virtualinvoke v.<org.apache.ibatis.builder.xml.XMLMapperBuilder: void parse()>();
label:
return;
catch java.io.IOException from label to label with label;
}
private void parseCache()
{
org.apache.ibatis.builder.MapperBuilderAssistant v;
long v, v;
java.lang.Integer v, v;
byte v;
java.lang.Long v;
int v, v;
boolean v, v;
java.util.Properties v;
org.apache.ibatis.annotations.Property[] v;
java.lang.'annotation'.Annotation v;
java.lang.Class v, v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Lorg/apache/ibatis/annotations/CacheNamespace;");
if v == null goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.CacheNamespace: int size()>();
if v != 0 goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.CacheNamespace: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
label:
v = v;
v = interfaceinvoke v.<org.apache.ibatis.annotations.CacheNamespace: long flushInterval()>();
v = v cmp 0L;
if v != 0 goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.CacheNamespace: long flushInterval()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.CacheNamespace: org.apache.ibatis.annotations.Property[] properties()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.util.Properties convertToProperties(org.apache.ibatis.annotations.Property[])>(v);
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
v = interfaceinvoke v.<org.apache.ibatis.annotations.CacheNamespace: java.lang.Class implementation()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.CacheNamespace: java.lang.Class eviction()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.CacheNamespace: boolean readWrite()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.CacheNamespace: boolean blocking()>();
virtualinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: org.apache.ibatis.cache.Cache useNewCache(java.lang.Class,java.lang.Class,java.lang.Long,java.lang.Integer,boolean,boolean,java.util.Properties)>(v, v, v, v, v, v, v);
label:
return;
}
private java.util.Properties convertToProperties(org.apache.ibatis.annotations.Property[])
{
java.util.Properties v, v;
org.apache.ibatis.annotations.Property[] v;
org.apache.ibatis.annotations.Property v;
int v, v, v;
org.apache.ibatis.session.Configuration v;
java.lang.String v, v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: org.apache.ibatis.annotations.Property[];
v = lengthof v;
if v != 0 goto label;
return null;
label:
v = new java.util.Properties;
specialinvoke v.<java.util.Properties: void <init>()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<org.apache.ibatis.annotations.Property: java.lang.String name()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Property: java.lang.String value()>();
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
v = virtualinvoke v.<org.apache.ibatis.session.Configuration: java.util.Properties getVariables()>();
v = staticinvoke <org.apache.ibatis.parsing.PropertyParser: java.lang.String parse(java.lang.String,java.util.Properties)>(v, v);
virtualinvoke v.<java.util.Properties: java.lang.Object setProperty(java.lang.String,java.lang.String)>(v, v);
v = v + 1;
goto label;
label:
return v;
}
private void parseCacheRef()
{
org.apache.ibatis.builder.MapperBuilderAssistant v, v;
org.apache.ibatis.builder.IncompleteElementException v;
org.apache.ibatis.session.Configuration v;
java.lang.String v, v, v;
boolean v, v;
org.apache.ibatis.builder.BuilderException v, v;
java.lang.'annotation'.Annotation v;
java.lang.Class v, v, v, v, v;
org.apache.ibatis.builder.CacheRefResolver v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Lorg/apache/ibatis/annotations/CacheNamespaceRef;");
if v == null goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.CacheNamespaceRef: java.lang.Class value()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.CacheNamespaceRef: java.lang.String name()>();
v = <java.lang.Void: java.lang.Class TYPE>;
if v != v goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = new org.apache.ibatis.builder.BuilderException;
specialinvoke v.<org.apache.ibatis.builder.BuilderException: void <init>(java.lang.String)>("Should be specified either value() or name() attribute in the @CacheNamespaceRef");
throw v;
label:
v = <java.lang.Void: java.lang.Class TYPE>;
if v == v goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = new org.apache.ibatis.builder.BuilderException;
specialinvoke v.<org.apache.ibatis.builder.BuilderException: void <init>(java.lang.String)>("Cannot use both value() and name() attribute in the @CacheNamespaceRef");
throw v;
label:
v = <java.lang.Void: java.lang.Class TYPE>;
if v == v goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
goto label;
label:
v = v;
label:
v = v;
label:
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
virtualinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: org.apache.ibatis.cache.Cache useCacheRef(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
v = new org.apache.ibatis.builder.CacheRefResolver;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
specialinvoke v.<org.apache.ibatis.builder.CacheRefResolver: void <init>(org.apache.ibatis.builder.MapperBuilderAssistant,java.lang.String)>(v, v);
virtualinvoke v.<org.apache.ibatis.session.Configuration: void addIncompleteCacheRef(org.apache.ibatis.builder.CacheRefResolver)>(v);
label:
return;
catch org.apache.ibatis.builder.IncompleteElementException from label to label with label;
}
private java.lang.String parseResultMap(java.lang.reflect.Method)
{
java.lang.'annotation'.Annotation[] v, v;
java.lang.'annotation'.Annotation v;
java.lang.Class v, v;
java.lang.String v;
java.lang.reflect.Method v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.reflect.Method;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
v = staticinvoke <org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class getReturnType(java.lang.reflect.Method,java.lang.Class)>(v, v);
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.'annotation'.Annotation[] getAnnotationsByType(java.lang.Class)>(class "Lorg/apache/ibatis/annotations/Arg;");
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.'annotation'.Annotation[] getAnnotationsByType(java.lang.Class)>(class "Lorg/apache/ibatis/annotations/Result;");
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Lorg/apache/ibatis/annotations/TypeDiscriminator;");
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.String generateResultMapName(java.lang.reflect.Method)>(v);
specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: void applyResultMap(java.lang.String,java.lang.Class,org.apache.ibatis.annotations.Arg[],org.apache.ibatis.annotations.Result[],org.apache.ibatis.annotations.TypeDiscriminator)>(v, v, v, v, v);
return v;
}
private java.lang.String generateResultMapName(java.lang.reflect.Method)
{
int v, v, v;
java.lang.String v, v, v, v, v, v, v, v;
java.lang.reflect.Method v;
boolean v;
java.lang.Class[] v;
java.lang.'annotation'.Annotation v;
java.lang.Class v, v, v;
java.lang.StringBuilder v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.reflect.Method;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Lorg/apache/ibatis/annotations/Results;");
if v == null goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Results: java.lang.String id()>();
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Results: java.lang.String id()>();
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.\u0001");
return v;
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getParameterTypes()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("-");
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
if v >= 1 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("-void");
label:
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.StringBuilder)>(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[])>("\u.\u0001\u0001");
return v;
}
private void applyResultMap(java.lang.String, java.lang.Class, org.apache.ibatis.annotations.Arg[], org.apache.ibatis.annotations.Result[], org.apache.ibatis.annotations.TypeDiscriminator)
{
org.apache.ibatis.builder.MapperBuilderAssistant v;
org.apache.ibatis.annotations.TypeDiscriminator v;
java.util.ArrayList v;
org.apache.ibatis.annotations.Result[] v;
java.lang.Class v;
java.lang.String v;
org.apache.ibatis.mapping.Discriminator v;
org.apache.ibatis.annotations.Arg[] v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Class;
v := @parameter: org.apache.ibatis.annotations.Arg[];
v := @parameter: org.apache.ibatis.annotations.Result[];
v := @parameter: org.apache.ibatis.annotations.TypeDiscriminator;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: void applyConstructorArgs(org.apache.ibatis.annotations.Arg[],java.lang.Class,java.util.List)>(v, v, v);
specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: void applyResults(org.apache.ibatis.annotations.Result[],java.lang.Class,java.util.List)>(v, v, v);
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.mapping.Discriminator applyDiscriminator(java.lang.String,java.lang.Class,org.apache.ibatis.annotations.TypeDiscriminator)>(v, v, v);
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
virtualinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: org.apache.ibatis.mapping.ResultMap addResultMap(java.lang.String,java.lang.Class,java.lang.String,org.apache.ibatis.mapping.Discriminator,java.util.List,java.lang.Boolean)>(v, v, null, v, v, null);
specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: void createDiscriminatorResultMaps(java.lang.String,java.lang.Class,org.apache.ibatis.annotations.TypeDiscriminator)>(v, v, v);
return;
}
private void createDiscriminatorResultMaps(java.lang.String, java.lang.Class, org.apache.ibatis.annotations.TypeDiscriminator)
{
org.apache.ibatis.builder.MapperBuilderAssistant v;
org.apache.ibatis.annotations.TypeDiscriminator v;
org.apache.ibatis.annotations.Case[] v;
java.util.ArrayList v;
org.apache.ibatis.annotations.Result[] v;
int v, v;
org.apache.ibatis.annotations.Case v;
java.lang.Class v, v;
java.lang.String v, v, v;
org.apache.ibatis.annotations.Arg[] v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Class;
v := @parameter: org.apache.ibatis.annotations.TypeDiscriminator;
if v == null goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.TypeDiscriminator: org.apache.ibatis.annotations.Case[] cases()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<org.apache.ibatis.annotations.Case: java.lang.String value()>();
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[])>("\u0001-\u0001");
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Case: org.apache.ibatis.annotations.Arg[] constructArgs()>();
specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: void applyConstructorArgs(org.apache.ibatis.annotations.Arg[],java.lang.Class,java.util.List)>(v, v, v);
v = interfaceinvoke v.<org.apache.ibatis.annotations.Case: org.apache.ibatis.annotations.Result[] results()>();
specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: void applyResults(org.apache.ibatis.annotations.Result[],java.lang.Class,java.util.List)>(v, v, v);
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Case: java.lang.Class type()>();
virtualinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: org.apache.ibatis.mapping.ResultMap addResultMap(java.lang.String,java.lang.Class,java.lang.String,org.apache.ibatis.mapping.Discriminator,java.util.List,java.lang.Boolean)>(v, v, v, null, v, null);
v = v + 1;
goto label;
label:
return;
}
private org.apache.ibatis.mapping.Discriminator applyDiscriminator(java.lang.String, java.lang.Class, org.apache.ibatis.annotations.TypeDiscriminator)
{
org.apache.ibatis.builder.MapperBuilderAssistant v;
org.apache.ibatis.annotations.TypeDiscriminator v;
java.util.HashMap v;
org.apache.ibatis.annotations.Case[] v;
int v, v;
java.lang.String v, v, v, v;
org.apache.ibatis.mapping.Discriminator v;
org.apache.ibatis.annotations.Case v;
org.apache.ibatis.type.JdbcType v, v, v, v;
java.lang.Class v, v, v, v, v, v, v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Class;
v := @parameter: org.apache.ibatis.annotations.TypeDiscriminator;
if v == null goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.TypeDiscriminator: java.lang.String column()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.TypeDiscriminator: java.lang.Class javaType()>();
v = <java.lang.Void: java.lang.Class TYPE>;
if v != v goto label;
v = class "Ljava/lang/String;";
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.TypeDiscriminator: java.lang.Class javaType()>();
label:
v = v;
v = interfaceinvoke v.<org.apache.ibatis.annotations.TypeDiscriminator: org.apache.ibatis.type.JdbcType jdbcType()>();
v = <org.apache.ibatis.type.JdbcType: org.apache.ibatis.type.JdbcType UNDEFINED>;
if v != v goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.TypeDiscriminator: org.apache.ibatis.type.JdbcType jdbcType()>();
label:
v = v;
v = interfaceinvoke v.<org.apache.ibatis.annotations.TypeDiscriminator: java.lang.Class typeHandler()>();
if v != class "Lorg/apache/ibatis/type/UnknownTypeHandler;" goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.TypeDiscriminator: java.lang.Class typeHandler()>();
label:
v = v;
v = interfaceinvoke v.<org.apache.ibatis.annotations.TypeDiscriminator: org.apache.ibatis.annotations.Case[] cases()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<org.apache.ibatis.annotations.Case: java.lang.String value()>();
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[])>("\u0001-\u0001");
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v + 1;
goto label;
label:
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
v = virtualinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: org.apache.ibatis.mapping.Discriminator buildDiscriminator(java.lang.Class,java.lang.String,java.lang.Class,org.apache.ibatis.type.JdbcType,java.lang.Class,java.util.Map)>(v, v, v, v, v, v);
return v;
label:
return null;
}
void parseStatement(java.lang.reflect.Method)
{
java.util.function.Consumer v;
org.apache.ibatis.scripting.LanguageDriver v;
java.util.Optional v;
java.util.Set v;
java.lang.Class v;
java.lang.reflect.Method v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.reflect.Method;
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class getParameterType(java.lang.reflect.Method)>(v);
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.scripting.LanguageDriver getLanguageDriver(java.lang.reflect.Method)>(v);
v = <org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.util.Set statementAnnotationTypes>;
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.util.Optional getAnnotationWrapper(java.lang.reflect.Method,boolean,java.util.Collection)>(v, 1, v);
v = staticinvoke <org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder$lambda_parseStatement_2__3: java.util.function.Consumer bootstrap$(org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder,java.lang.Class,org.apache.ibatis.scripting.LanguageDriver,java.lang.reflect.Method)>(v, v, v, v);
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
return;
}
private org.apache.ibatis.scripting.LanguageDriver getLanguageDriver(java.lang.reflect.Method)
{
org.apache.ibatis.scripting.LanguageDriver v;
java.lang.'annotation'.Annotation v;
org.apache.ibatis.session.Configuration v;
java.lang.Class v;
java.lang.reflect.Method v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.reflect.Method;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Lorg/apache/ibatis/annotations/Lang;");
v = null;
if v == null goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Lang: java.lang.Class value()>();
label:
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
v = virtualinvoke v.<org.apache.ibatis.session.Configuration: org.apache.ibatis.scripting.LanguageDriver getLanguageDriver(java.lang.Class)>(v);
return v;
}
private java.lang.Class getParameterType(java.lang.reflect.Method)
{
java.lang.Class[] v;
int v, v;
java.lang.Class v, v, v, v;
java.lang.reflect.Method v;
boolean v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.reflect.Method;
v = null;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getParameterTypes()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = class "Lorg/apache/ibatis/session/RowBounds;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
v = class "Lorg/apache/ibatis/session/ResultHandler;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
if v != null goto label;
v = v;
goto label;
label:
v = class "Lorg/apache/ibatis/binding/MapperMethod$ParamMap;";
label:
v = v + 1;
goto label;
label:
return v;
}
private static java.lang.Class getReturnType(java.lang.reflect.Method, java.lang.Class)
{
java.lang.reflect.Method v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.reflect.Type v, v, v, v, v, v;
java.lang.'annotation'.Annotation v;
java.lang.reflect.Type[] v, v, v;
int v, v;
java.lang.Class v, v, v, v, v, v;
java.lang.Object v;
v := @parameter: java.lang.reflect.Method;
v := @parameter: java.lang.Class;
virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getReturnType()>();
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 = virtualinvoke v.<java.lang.Class: boolean isArray()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.Class getComponentType()>();
label:
v = <java.lang.Void: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(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/ResultType;");
if v == null goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.ResultType: java.lang.Class value()>();
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 = class "Ljava/util/Collection;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
v = class "Lorg/apache/ibatis/cursor/Cursor;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type[] getActualTypeArguments()>();
if v == null goto label;
v = lengthof v;
if v != 1 goto label;
v = v[0];
v = v instanceof java.lang.Class;
if v != 0 goto label;
v = v instanceof java.lang.reflect.ParameterizedType;
if v == 0 goto label;
interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type getRawType()>();
goto label;
label:
v = v instanceof java.lang.reflect.GenericArrayType;
if v == 0 goto label;
v = interfaceinvoke v.<java.lang.reflect.GenericArrayType: java.lang.reflect.Type getGenericComponentType()>();
v = staticinvoke <java.lang.reflect.Array: java.lang.Object newInstance(java.lang.Class,int)>(v, 0);
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
goto label;
label:
v = virtualinvoke v.<java.lang.reflect.Method: boolean isAnnotationPresent(java.lang.Class)>(class "Lorg/apache/ibatis/annotations/MapKey;");
if v == 0 goto label;
v = class "Ljava/util/Map;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type[] getActualTypeArguments()>();
if v == null goto label;
v = lengthof v;
if v != 2 goto label;
v = v[1];
v = v instanceof java.lang.Class;
if v != 0 goto label;
v = v instanceof java.lang.reflect.ParameterizedType;
if v == 0 goto label;
interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type getRawType()>();
goto label;
label:
v = class "Ljava/util/Optional;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type[] getActualTypeArguments()>();
v = v[0];
label:
return v;
}
private void applyResults(org.apache.ibatis.annotations.Result[], java.lang.Class, java.util.List)
{
org.apache.ibatis.mapping.ResultFlag v;
org.apache.ibatis.builder.MapperBuilderAssistant v;
java.util.ArrayList v;
org.apache.ibatis.annotations.Result[] v;
int v, v;
java.lang.String v, v, v, v, v, v, v;
org.apache.ibatis.annotations.Result v;
boolean v, v, v, v;
java.util.List v;
org.apache.ibatis.mapping.ResultMapping v;
org.apache.ibatis.type.JdbcType v, v, v;
java.lang.Class v, v, v, v, v, v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: org.apache.ibatis.annotations.Result[];
v := @parameter: java.lang.Class;
v := @parameter: java.util.List;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: boolean id()>();
if v == 0 goto label;
v = <org.apache.ibatis.mapping.ResultFlag: org.apache.ibatis.mapping.ResultFlag ID>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: java.lang.Class typeHandler()>();
if v != class "Lorg/apache/ibatis/type/UnknownTypeHandler;" goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: java.lang.Class typeHandler()>();
label:
v = v;
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: boolean hasNestedResultMap(org.apache.ibatis.annotations.Result)>(v);
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: java.lang.String property()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.String nullOrEmpty(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: java.lang.String column()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.String nullOrEmpty(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: java.lang.Class javaType()>();
v = <java.lang.Void: java.lang.Class TYPE>;
if v != v goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: java.lang.Class javaType()>();
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.type.JdbcType jdbcType()>();
v = <org.apache.ibatis.type.JdbcType: org.apache.ibatis.type.JdbcType UNDEFINED>;
if v != v goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.type.JdbcType jdbcType()>();
label:
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: boolean hasNestedSelect(org.apache.ibatis.annotations.Result)>(v);
if v == 0 goto label;
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.String nestedSelectId(org.apache.ibatis.annotations.Result)>(v);
goto label;
label:
v = null;
label:
if v == 0 goto label;
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.String nestedResultMapId(org.apache.ibatis.annotations.Result)>(v);
goto label;
label:
v = null;
label:
if v == 0 goto label;
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.String findColumnPrefix(org.apache.ibatis.annotations.Result)>(v);
goto label;
label:
v = null;
label:
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: boolean isLazy(org.apache.ibatis.annotations.Result)>(v);
v = virtualinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: org.apache.ibatis.mapping.ResultMapping buildResultMapping(java.lang.Class,java.lang.String,java.lang.String,java.lang.Class,org.apache.ibatis.type.JdbcType,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Class,java.util.List,java.lang.String,java.lang.String,boolean)>(v, v, v, v, v, v, v, null, v, v, v, null, null, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
return;
}
private java.lang.String findColumnPrefix(org.apache.ibatis.annotations.Result)
{
org.apache.ibatis.annotations.Many v;
org.apache.ibatis.annotations.One v;
int v;
java.lang.String v;
org.apache.ibatis.annotations.Result v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: org.apache.ibatis.annotations.Result;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.One one()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.One: java.lang.String columnPrefix()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= 1 goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.Many many()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Many: java.lang.String columnPrefix()>();
label:
return v;
}
private java.lang.String nestedResultMapId(org.apache.ibatis.annotations.Result)
{
org.apache.ibatis.annotations.Many v;
org.apache.ibatis.annotations.One v;
int v;
java.lang.Class v;
java.lang.String v, v;
org.apache.ibatis.annotations.Result v;
boolean v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: org.apache.ibatis.annotations.Result;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.One one()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.One: java.lang.String resultMap()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= 1 goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.Many many()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Many: java.lang.String resultMap()>();
label:
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>(".");
if v != 0 goto label;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
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[])>("\u.\u0001");
label:
return v;
}
private boolean hasNestedResultMap(org.apache.ibatis.annotations.Result)
{
int v, v, v, v;
java.lang.String v, v, v, v;
org.apache.ibatis.annotations.Result v;
boolean v;
org.apache.ibatis.annotations.Many v, v;
org.apache.ibatis.builder.BuilderException v;
org.apache.ibatis.annotations.One v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: org.apache.ibatis.annotations.Result;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.One one()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.One: java.lang.String resultMap()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.Many many()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Many: java.lang.String resultMap()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = new org.apache.ibatis.builder.BuilderException;
specialinvoke v.<org.apache.ibatis.builder.BuilderException: void <init>(java.lang.String)>("Cannot use both @One and @Many annotations in the same @Result");
throw v;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.One one()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.One: java.lang.String resultMap()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v > 0 goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.Many many()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Many: java.lang.String resultMap()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private java.lang.String nestedSelectId(org.apache.ibatis.annotations.Result)
{
org.apache.ibatis.annotations.Many v;
org.apache.ibatis.annotations.One v;
int v;
java.lang.Class v;
java.lang.String v, v;
org.apache.ibatis.annotations.Result v;
boolean v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: org.apache.ibatis.annotations.Result;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.One one()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.One: java.lang.String select()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= 1 goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.Many many()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Many: java.lang.String select()>();
label:
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>(".");
if v != 0 goto label;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
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[])>("\u.\u0001");
label:
return v;
}
private boolean isLazy(org.apache.ibatis.annotations.Result)
{
org.apache.ibatis.mapping.FetchType v, v, v, v, v, v, v, v;
int v, v;
org.apache.ibatis.session.Configuration v;
java.lang.String v, v;
org.apache.ibatis.annotations.Result v;
boolean v, v, v;
org.apache.ibatis.annotations.Many v, v, v;
org.apache.ibatis.annotations.One v, v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: org.apache.ibatis.annotations.Result;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
v = virtualinvoke v.<org.apache.ibatis.session.Configuration: boolean isLazyLoadingEnabled()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.One one()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.One: java.lang.String select()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = <org.apache.ibatis.mapping.FetchType: org.apache.ibatis.mapping.FetchType DEFAULT>;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.One one()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.One: org.apache.ibatis.mapping.FetchType fetchType()>();
if v == v goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.One one()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.One: org.apache.ibatis.mapping.FetchType fetchType()>();
v = <org.apache.ibatis.mapping.FetchType: org.apache.ibatis.mapping.FetchType LAZY>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.Many many()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Many: java.lang.String select()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = <org.apache.ibatis.mapping.FetchType: org.apache.ibatis.mapping.FetchType DEFAULT>;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.Many many()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Many: org.apache.ibatis.mapping.FetchType fetchType()>();
if v == v goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.Many many()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Many: org.apache.ibatis.mapping.FetchType fetchType()>();
v = <org.apache.ibatis.mapping.FetchType: org.apache.ibatis.mapping.FetchType LAZY>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
return v;
}
private boolean hasNestedSelect(org.apache.ibatis.annotations.Result)
{
int v, v, v, v;
java.lang.String v, v, v, v;
org.apache.ibatis.annotations.Result v;
boolean v;
org.apache.ibatis.annotations.Many v, v;
org.apache.ibatis.builder.BuilderException v;
org.apache.ibatis.annotations.One v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: org.apache.ibatis.annotations.Result;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.One one()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.One: java.lang.String select()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.Many many()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Many: java.lang.String select()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = new org.apache.ibatis.builder.BuilderException;
specialinvoke v.<org.apache.ibatis.builder.BuilderException: void <init>(java.lang.String)>("Cannot use both @One and @Many annotations in the same @Result");
throw v;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.One one()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.One: java.lang.String select()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v > 0 goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Result: org.apache.ibatis.annotations.Many many()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.Many: java.lang.String select()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void applyConstructorArgs(org.apache.ibatis.annotations.Arg[], java.lang.Class, java.util.List)
{
org.apache.ibatis.builder.MapperBuilderAssistant v;
boolean v;
java.util.List v;
org.apache.ibatis.mapping.ResultMapping v;
org.apache.ibatis.type.JdbcType v, v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
org.apache.ibatis.mapping.ResultFlag v, v;
java.util.ArrayList v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
org.apache.ibatis.annotations.Arg[] v;
org.apache.ibatis.annotations.Arg v;
java.lang.Class v, v, v, v, v, v, v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: org.apache.ibatis.annotations.Arg[];
v := @parameter: java.lang.Class;
v := @parameter: java.util.List;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = <org.apache.ibatis.mapping.ResultFlag: org.apache.ibatis.mapping.ResultFlag CONSTRUCTOR>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = interfaceinvoke v.<org.apache.ibatis.annotations.Arg: boolean id()>();
if v == 0 goto label;
v = <org.apache.ibatis.mapping.ResultFlag: org.apache.ibatis.mapping.ResultFlag ID>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Arg: java.lang.Class typeHandler()>();
if v != class "Lorg/apache/ibatis/type/UnknownTypeHandler;" goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Arg: java.lang.Class typeHandler()>();
label:
v = v;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Arg: java.lang.String name()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.String nullOrEmpty(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.ibatis.annotations.Arg: java.lang.String column()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.String nullOrEmpty(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.ibatis.annotations.Arg: java.lang.Class javaType()>();
v = <java.lang.Void: java.lang.Class TYPE>;
if v != v goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Arg: java.lang.Class javaType()>();
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Arg: org.apache.ibatis.type.JdbcType jdbcType()>();
v = <org.apache.ibatis.type.JdbcType: org.apache.ibatis.type.JdbcType UNDEFINED>;
if v != v goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Arg: org.apache.ibatis.type.JdbcType jdbcType()>();
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.Arg: java.lang.String select()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.String nullOrEmpty(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.ibatis.annotations.Arg: java.lang.String resultMap()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.String nullOrEmpty(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.ibatis.annotations.Arg: java.lang.String columnPrefix()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.String nullOrEmpty(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: org.apache.ibatis.mapping.ResultMapping buildResultMapping(java.lang.Class,java.lang.String,java.lang.String,java.lang.Class,org.apache.ibatis.type.JdbcType,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Class,java.util.List,java.lang.String,java.lang.String,boolean)>(v, v, v, v, v, v, v, null, v, v, v, null, null, 0);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
return;
}
private java.lang.String nullOrEmpty(java.lang.String)
{
int v;
java.lang.String v, v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v != 0 goto label;
label:
v = null;
goto label;
label:
v = v;
label:
return v;
}
private org.apache.ibatis.executor.keygen.KeyGenerator handleSelectKeyAnnotation(org.apache.ibatis.annotations.SelectKey, java.lang.String, java.lang.Class, org.apache.ibatis.scripting.LanguageDriver)
{
org.apache.ibatis.mapping.SqlCommandType v;
org.apache.ibatis.builder.MapperBuilderAssistant v, v;
org.apache.ibatis.mapping.StatementType v;
org.apache.ibatis.executor.keygen.SelectKeyGenerator v;
org.apache.ibatis.session.Configuration v, v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v;
org.apache.ibatis.scripting.LanguageDriver v;
org.apache.ibatis.executor.keygen.NoKeyGenerator v;
org.apache.ibatis.annotations.SelectKey v;
org.apache.ibatis.mapping.MappedStatement v;
java.lang.Class v, v;
org.apache.ibatis.mapping.SqlSource v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: org.apache.ibatis.annotations.SelectKey;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Class;
v := @parameter: org.apache.ibatis.scripting.LanguageDriver;
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[])>("\u0001!selectKey");
v = interfaceinvoke v.<org.apache.ibatis.annotations.SelectKey: java.lang.Class resultType()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.SelectKey: org.apache.ibatis.mapping.StatementType statementType()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.SelectKey: java.lang.String keyProperty()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.SelectKey: java.lang.String keyColumn()>();
v = interfaceinvoke v.<org.apache.ibatis.annotations.SelectKey: boolean before()>();
v = <org.apache.ibatis.executor.keygen.NoKeyGenerator: org.apache.ibatis.executor.keygen.NoKeyGenerator INSTANCE>;
v = interfaceinvoke v.<org.apache.ibatis.annotations.SelectKey: java.lang.String databaseId()>();
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<org.apache.ibatis.annotations.SelectKey: java.lang.String databaseId()>();
label:
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.mapping.SqlSource buildSqlSource(java.lang.'annotation'.Annotation,java.lang.Class,org.apache.ibatis.scripting.LanguageDriver,java.lang.reflect.Method)>(v, v, v, null);
v = <org.apache.ibatis.mapping.SqlCommandType: org.apache.ibatis.mapping.SqlCommandType SELECT>;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
virtualinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: org.apache.ibatis.mapping.MappedStatement addMappedStatement(java.lang.String,org.apache.ibatis.mapping.SqlSource,org.apache.ibatis.mapping.StatementType,org.apache.ibatis.mapping.SqlCommandType,java.lang.Integer,java.lang.Integer,java.lang.String,java.lang.Class,java.lang.String,java.lang.Class,org.apache.ibatis.mapping.ResultSetType,boolean,boolean,boolean,org.apache.ibatis.executor.keygen.KeyGenerator,java.lang.String,java.lang.String,java.lang.String,org.apache.ibatis.scripting.LanguageDriver,java.lang.String,boolean)>(v, v, v, v, null, null, null, v, null, v, null, 0, 0, 0, v, v, v, v, v, null, 0);
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
v = virtualinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: java.lang.String applyCurrentNamespace(java.lang.String,boolean)>(v, 0);
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
v = virtualinvoke v.<org.apache.ibatis.session.Configuration: org.apache.ibatis.mapping.MappedStatement getMappedStatement(java.lang.String,boolean)>(v, 0);
v = new org.apache.ibatis.executor.keygen.SelectKeyGenerator;
specialinvoke v.<org.apache.ibatis.executor.keygen.SelectKeyGenerator: void <init>(org.apache.ibatis.mapping.MappedStatement,boolean)>(v, v);
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
virtualinvoke v.<org.apache.ibatis.session.Configuration: void addKeyGenerator(java.lang.String,org.apache.ibatis.executor.keygen.KeyGenerator)>(v, v);
return v;
}
private org.apache.ibatis.mapping.SqlSource buildSqlSource(java.lang.'annotation'.Annotation, java.lang.Class, org.apache.ibatis.scripting.LanguageDriver, java.lang.reflect.Method)
{
org.apache.ibatis.builder.MapperBuilderAssistant v;
java.lang.String[] v, v, v, v, v;
org.apache.ibatis.builder.'annotation'.ProviderSqlSource v;
org.apache.ibatis.session.Configuration v;
java.lang.reflect.Method v;
boolean v, v, v, v, v;
org.apache.ibatis.scripting.LanguageDriver v;
java.lang.'annotation'.Annotation v;
java.lang.Class v, v;
org.apache.ibatis.mapping.SqlSource v, v, v, v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.'annotation'.Annotation;
v := @parameter: java.lang.Class;
v := @parameter: org.apache.ibatis.scripting.LanguageDriver;
v := @parameter: java.lang.reflect.Method;
v = v instanceof org.apache.ibatis.annotations.Select;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Select: java.lang.String[] value()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.mapping.SqlSource buildSqlSourceFromStrings(java.lang.String[],java.lang.Class,org.apache.ibatis.scripting.LanguageDriver)>(v, v, v);
return v;
label:
v = v instanceof org.apache.ibatis.annotations.Update;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Update: java.lang.String[] value()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.mapping.SqlSource buildSqlSourceFromStrings(java.lang.String[],java.lang.Class,org.apache.ibatis.scripting.LanguageDriver)>(v, v, v);
return v;
label:
v = v instanceof org.apache.ibatis.annotations.Insert;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Insert: java.lang.String[] value()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.mapping.SqlSource buildSqlSourceFromStrings(java.lang.String[],java.lang.Class,org.apache.ibatis.scripting.LanguageDriver)>(v, v, v);
return v;
label:
v = v instanceof org.apache.ibatis.annotations.Delete;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.Delete: java.lang.String[] value()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.mapping.SqlSource buildSqlSourceFromStrings(java.lang.String[],java.lang.Class,org.apache.ibatis.scripting.LanguageDriver)>(v, v, v);
return v;
label:
v = v instanceof org.apache.ibatis.annotations.SelectKey;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.ibatis.annotations.SelectKey: java.lang.String[] statement()>();
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.mapping.SqlSource buildSqlSourceFromStrings(java.lang.String[],java.lang.Class,org.apache.ibatis.scripting.LanguageDriver)>(v, v, v);
return v;
label:
v = new org.apache.ibatis.builder.'annotation'.ProviderSqlSource;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.builder.MapperBuilderAssistant assistant>;
v = virtualinvoke v.<org.apache.ibatis.builder.MapperBuilderAssistant: org.apache.ibatis.session.Configuration getConfiguration()>();
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class type>;
specialinvoke v.<org.apache.ibatis.builder.'annotation'.ProviderSqlSource: void <init>(org.apache.ibatis.session.Configuration,java.lang.'annotation'.Annotation,java.lang.Class,java.lang.reflect.Method)>(v, v, v, v);
return v;
}
private org.apache.ibatis.mapping.SqlSource buildSqlSourceFromStrings(java.lang.String[], java.lang.Class, org.apache.ibatis.scripting.LanguageDriver)
{
org.apache.ibatis.scripting.LanguageDriver v;
java.lang.String[] v;
org.apache.ibatis.session.Configuration v;
java.lang.Class v;
org.apache.ibatis.mapping.SqlSource v;
java.lang.String v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.String[];
v := @parameter: java.lang.Class;
v := @parameter: org.apache.ibatis.scripting.LanguageDriver;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
v = staticinvoke <java.lang.String: java.lang.String join(java.lang.CharSequence,java.lang.CharSequence[])>(" ", v);
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = interfaceinvoke v.<org.apache.ibatis.scripting.LanguageDriver: org.apache.ibatis.mapping.SqlSource createSqlSource(org.apache.ibatis.session.Configuration,java.lang.String,java.lang.Class)>(v, v, v);
return v;
}
private final transient java.util.Optional getAnnotationWrapper(java.lang.reflect.Method, boolean, java.lang.Class[])
{
java.util.List v;
java.lang.Class[] v;
java.util.Optional v;
java.lang.reflect.Method v;
boolean v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.reflect.Method;
v := @parameter: boolean;
v := @parameter: java.lang.Class[];
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = specialinvoke v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.util.Optional getAnnotationWrapper(java.lang.reflect.Method,boolean,java.util.Collection)>(v, v, v);
return v;
}
private java.util.Optional getAnnotationWrapper(java.lang.reflect.Method, boolean, java.util.Collection)
{
java.lang.Object[] v;
java.util.function.Function v, v, v, v;
org.apache.ibatis.session.Configuration v;
java.lang.String v, v, v, v;
java.util.stream.Collector v;
java.lang.reflect.Method v;
boolean v, v;
java.util.Collection v;
org.apache.ibatis.builder.BuilderException v;
java.util.function.BinaryOperator v;
java.util.stream.Stream v, v, v;
java.util.Optional v;
java.lang.Class v;
java.lang.Object v, v;
org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder v;
v := @this: org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder;
v := @parameter: java.lang.reflect.Method;
v := @parameter: boolean;
v := @parameter: java.util.Collection;
v = v.<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: org.apache.ibatis.session.Configuration configuration>;
v = virtualinvoke v.<org.apache.ibatis.session.Configuration: java.lang.String getDatabaseId()>();
v = interfaceinvoke v.<java.util.Collection: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder$lambda_getAnnotationWrapper_3__4: java.util.function.Function bootstrap$(java.lang.reflect.Method)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream flatMap(java.util.function.Function)>(v);
v = staticinvoke <org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder$init__5: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder$getDatabaseId__6: java.util.function.Function bootstrap$()>();
v = staticinvoke <org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder$lambda_getAnnotationWrapper_4__7: java.util.function.Function bootstrap$()>();
v = staticinvoke <org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder$lambda_getAnnotationWrapper_5__8: java.util.function.BinaryOperator bootstrap$(java.lang.reflect.Method)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toMap(java.util.function.Function,java.util.function.Function,java.util.function.BinaryOperator)>(v, v, v);
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
label:
if v != null goto label;
interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("");
label:
if v == 0 goto label;
if v != null goto label;
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v != 0 goto label;
v = new org.apache.ibatis.builder.BuilderException;
v = newarray (java.lang.Object)[3];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getDeclaringClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v[0] = v;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v[1] = v;
v[2] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Could not find a statement annotation that correspond a current database or default statement on method \'%s.%s\'. Current database id is [%s].", v);
specialinvoke v.<org.apache.ibatis.builder.BuilderException: void <init>(java.lang.String)>(v);
throw v;
label:
v = staticinvoke <java.util.Optional: java.util.Optional ofNullable(java.lang.Object)>(v);
return v;
}
public static java.lang.Class getMethodReturnType(java.lang.String, java.lang.String)
{
java.lang.reflect.Method[] v;
int v, v;
java.lang.Class v, v;
java.lang.ClassNotFoundException v;
java.lang.String v, v, v;
java.lang.reflect.Method v;
boolean v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
if v == null goto label;
if v != null goto label;
label:
return null;
label:
v = staticinvoke <org.apache.ibatis.io.Resources: java.lang.Class classForName(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method[] getMethods()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = staticinvoke <org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: boolean canHaveStatement(java.lang.reflect.Method)>(v);
if v == 0 goto label;
v = staticinvoke <org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.lang.Class getReturnType(java.lang.reflect.Method,java.lang.Class)>(v, v);
label:
return v;
label:
v = v + 1;
goto label;
label:
v := @caughtexception;
label:
return null;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.ClassNotFoundException from label to label with label;
}
static void <clinit>()
{
java.util.stream.Stream v;
java.lang.Class[] v;
java.lang.Object v;
java.util.stream.Collector v;
v = newarray (java.lang.Class)[8];
v[0] = class "Lorg/apache/ibatis/annotations/Select;";
v[1] = class "Lorg/apache/ibatis/annotations/Update;";
v[2] = class "Lorg/apache/ibatis/annotations/Insert;";
v[3] = class "Lorg/apache/ibatis/annotations/Delete;";
v[4] = class "Lorg/apache/ibatis/annotations/SelectProvider;";
v[5] = class "Lorg/apache/ibatis/annotations/UpdateProvider;";
v[6] = class "Lorg/apache/ibatis/annotations/InsertProvider;";
v[7] = class "Lorg/apache/ibatis/annotations/DeleteProvider;";
v = staticinvoke <java.util.stream.Stream: java.util.stream.Stream of(java.lang.Object[])>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toSet()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
<org.apache.ibatis.builder.'annotation'.MapperAnnotationBuilder: java.util.Set statementAnnotationTypes> = v;
return;
}
}