public abstract class org.apache.ibatis.ognl.internal.entry.MethodCacheEntryFactory extends java.lang.Object implements org.apache.ibatis.ognl.internal.entry.CacheEntryFactory
{
public void <init>()
{
org.apache.ibatis.ognl.internal.entry.MethodCacheEntryFactory v;
v := @this: org.apache.ibatis.ognl.internal.entry.MethodCacheEntryFactory;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public java.util.Map create(org.apache.ibatis.ognl.internal.entry.MethodCacheEntry) throws org.apache.ibatis.ognl.internal.CacheException
{
org.apache.ibatis.ognl.internal.entry.MethodCacheEntry v;
java.lang.Class v;
java.util.HashMap v;
org.apache.ibatis.ognl.internal.entry.MethodCacheEntryFactory v;
v := @this: org.apache.ibatis.ognl.internal.entry.MethodCacheEntryFactory;
v := @parameter: org.apache.ibatis.ognl.internal.entry.MethodCacheEntry;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>(int)>(23);
v = v.<org.apache.ibatis.ognl.internal.entry.MethodCacheEntry: java.lang.Class targetClass>;
specialinvoke v.<org.apache.ibatis.ognl.internal.entry.MethodCacheEntryFactory: void collectMethods(org.apache.ibatis.ognl.internal.entry.MethodCacheEntry,java.lang.Class,java.util.Map)>(v, v, v);
return v;
}
protected abstract boolean shouldCache(org.apache.ibatis.ognl.internal.entry.MethodCacheEntry, java.lang.reflect.Method);
private void collectMethods(org.apache.ibatis.ognl.internal.entry.MethodCacheEntry, java.lang.Class, java.util.Map)
{
java.util.function.Function v;
org.apache.ibatis.ognl.internal.entry.MethodCacheEntryFactory v;
java.lang.reflect.Method[] v, v;
java.util.Map v;
int v, v, v, v;
java.lang.SecurityException v;
java.lang.String v;
java.lang.reflect.Method v;
boolean v, v;
org.apache.ibatis.ognl.internal.entry.MethodCacheEntry v;
java.lang.Class[] v;
java.lang.Class v, v, v;
java.lang.Object v;
v := @this: org.apache.ibatis.ognl.internal.entry.MethodCacheEntryFactory;
v := @parameter: org.apache.ibatis.ognl.internal.entry.MethodCacheEntry;
v := @parameter: java.lang.Class;
v := @parameter: java.util.Map;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method[] getDeclaredMethods()>();
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method[] getMethods()>();
label:
v = v;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <org.apache.ibatis.ognl.OgnlRuntime: boolean isMethodCallable(java.lang.reflect.Method)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.ibatis.ognl.internal.entry.MethodCacheEntryFactory: boolean shouldCache(org.apache.ibatis.ognl.internal.entry.MethodCacheEntry,java.lang.reflect.Method)>(v, v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = staticinvoke <org.apache.ibatis.ognl.internal.entry.MethodCacheEntryFactory$lambda_collectMethods_0__81: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Class getSuperclass()>();
if v == null goto label;
specialinvoke v.<org.apache.ibatis.ognl.internal.entry.MethodCacheEntryFactory: void collectMethods(org.apache.ibatis.ognl.internal.entry.MethodCacheEntry,java.lang.Class,java.util.Map)>(v, v, v);
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Class[] getInterfaces()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
specialinvoke v.<org.apache.ibatis.ognl.internal.entry.MethodCacheEntryFactory: void collectMethods(org.apache.ibatis.ognl.internal.entry.MethodCacheEntry,java.lang.Class,java.util.Map)>(v, v, v);
v = v + 1;
goto label;
label:
return;
catch java.lang.SecurityException from label to label with label;
}
}