private MetaMethod getSuperMethodWithCaching(Object[] arguments, MetaMethodIndex.Entry e) { MetaMethodIndex.CacheEntry cacheEntry; if (e.methodsForSuper == null) return null; cacheEntry = e.cachedMethodForSuper; if (cacheEntry != null && MetaClassHelper.sameClasses(cacheEntry.params, arguments, e.methodsForSuper instanceof MetaMethod)) { MetaMethod method = cacheEntry.method; if (method!=null) return method; } final Class[] classes = MetaClassHelper.convertToTypeArray(arguments); MetaMethod method = (MetaMethod) chooseMethod(e.name, e.methodsForSuper, classes); cacheEntry = new MetaMethodIndex.CacheEntry (classes, method.isAbstract()?null:method); e.cachedMethodForSuper = cacheEntry; return cacheEntry.method; }
private MetaMethod getSuperMethodWithCaching(Object[] arguments, MetaMethodIndex.Entry e) { MetaMethodIndex.CacheEntry cacheEntry; if (e.methodsForSuper == null) return null; cacheEntry = e.cachedMethodForSuper; if (cacheEntry != null && MetaClassHelper.sameClasses(cacheEntry.params, arguments, e.methodsForSuper instanceof MetaMethod)) { MetaMethod method = cacheEntry.method; if (method!=null) return method; } final Class[] classes = MetaClassHelper.convertToTypeArray(arguments); MetaMethod method = (MetaMethod) chooseMethod(e.name, e.methodsForSuper, classes); cacheEntry = new MetaMethodIndex.CacheEntry (classes, method.isAbstract()?null:method); e.cachedMethodForSuper = cacheEntry; return cacheEntry.method; }
private MetaMethod getSuperMethodWithCaching(Object[] arguments, MetaMethodIndex.Entry e) { MetaMethodIndex.CacheEntry cacheEntry; if (e.methodsForSuper == null) return null; cacheEntry = e.cachedMethodForSuper; if (cacheEntry != null && MetaClassHelper.sameClasses(cacheEntry.params, arguments, e.methodsForSuper instanceof MetaMethod)) { MetaMethod method = cacheEntry.method; if (method!=null) return method; } cacheEntry = new MetaMethodIndex.CacheEntry (); final Class[] classes = MetaClassHelper.convertToTypeArray(arguments); cacheEntry.params = classes; cacheEntry.method = (MetaMethod) chooseMethod(e.name, e.methodsForSuper, classes); if (cacheEntry.method.isAbstract()) cacheEntry.method = null; e.cachedMethodForSuper = cacheEntry; return cacheEntry.method; }
private MetaMethod getSuperMethodWithCaching(Object[] arguments, MetaMethodIndex.Entry e) { MetaMethodIndex.CacheEntry cacheEntry; if (e.methodsForSuper == null) return null; cacheEntry = e.cachedMethodForSuper; if (cacheEntry != null && MetaClassHelper.sameClasses(cacheEntry.params, arguments, e.methodsForSuper instanceof MetaMethod)) { MetaMethod method = cacheEntry.method; if (method!=null) return method; } cacheEntry = new MetaMethodIndex.CacheEntry (); final Class[] classes = MetaClassHelper.convertToTypeArray(arguments); cacheEntry.params = classes; cacheEntry.method = (MetaMethod) chooseMethod(e.name, e.methodsForSuper, classes); if (cacheEntry.method.isAbstract()) cacheEntry.method = null; e.cachedMethodForSuper = cacheEntry; return cacheEntry.method; }
private MetaMethod getSuperMethodWithCaching(Object[] arguments, MetaMethodIndex.Entry e) { MetaMethodIndex.CacheEntry cacheEntry; if (e.methodsForSuper == null) return null; cacheEntry = e.cachedMethodForSuper; if (cacheEntry != null && sameClasses(cacheEntry.params, arguments, e.methodsForSuper instanceof MetaMethod)) { MetaMethod method = cacheEntry.method; if (method!=null) return method; } cacheEntry = new MetaMethodIndex.CacheEntry (); final Class[] classes = MetaClassHelper.convertToTypeArray(arguments); cacheEntry.params = classes; cacheEntry.method = (MetaMethod) chooseMethod(e.name, e.methodsForSuper, classes, false); if (cacheEntry.method.isAbstract()) cacheEntry.method = null; e.cachedMethodForSuper = cacheEntry; return cacheEntry.method; }