/** * Return true if the given method is defined on this class and is a builtin * (defined in Java at boot). * * @param methodName * @return */ public boolean isMethodBuiltin(String methodName) { DynamicMethod method = searchMethodInner(methodName); return method != null && method.isBuiltin(); }
/** * Return true if the given method is defined on this class and is a builtin * (defined in Java at boot). * * @param methodName * @return */ public boolean isMethodBuiltin(String methodName) { DynamicMethod method = searchMethodInner(methodName); return method != null && method.isBuiltin(); }
/** * Search through this module and supermodules for method definitions after {@link RubyModule#cacheHit(String)} * failed to return a result. Cache superclass definitions in this class. * * @param id The name of the method to search for * @param cacheUndef Flag for caching UndefinedMethod. This should normally be true. * @return The method, or UndefinedMethod if not found */ private CacheEntry searchWithCacheMiss(final String id, final boolean cacheUndef) { // we grab serial number first; the worst that will happen is we cache a later // update with an earlier serial number, which would just flush anyway final int token = generation; DynamicMethod method = searchMethodInner(id); if (method instanceof CacheableMethod) { method = ((CacheableMethod) method).getMethodForCaching(); } return method != null ? addToCache(id, method, token) : cacheUndef ? addToCache(id, UndefinedMethod.getInstance(), token) : cacheEntryFactory.newCacheEntry(id, method, token); }
/** * Search through this module and supermodules for method definitions after {@link RubyModule#cacheHit(String)} * failed to return a result. Cache superclass definitions in this class. * * @param id The name of the method to search for * @param cacheUndef Flag for caching UndefinedMethod. This should normally be true. * @return The method, or UndefinedMethod if not found */ private CacheEntry searchWithCacheMiss(final String id, final boolean cacheUndef) { // we grab serial number first; the worst that will happen is we cache a later // update with an earlier serial number, which would just flush anyway final int token = generation; DynamicMethod method = searchMethodInner(id); if (method instanceof CacheableMethod) { method = ((CacheableMethod) method).getMethodForCaching(); } return method != null ? addToCache(id, method, token) : cacheUndef ? addToCache(id, UndefinedMethod.getInstance(), token) : cacheEntryFactory.newCacheEntry(id, method, token); }
/** * Search through this module and supermodules for method definitions. Cache superclass definitions in this class. * * @param name The name of the method to search for * @return The method, or UndefinedMethod if not found */ public CacheEntry searchWithCache(String name) { CacheEntry entry = cacheHit(name); if (entry != null) return entry; // we grab serial number first; the worst that will happen is we cache a later // update with an earlier serial number, which would just flush anyway int token = getGeneration(); DynamicMethod method = searchMethodInner(name); if (method instanceof CacheableMethod) { method = ((CacheableMethod) method).getMethodForCaching(); } return method != null ? addToCache(name, method, token) : addToCache(name, UndefinedMethod.getInstance(), token); }
/** * Search through this module and supermodules for method definitions. Cache superclass definitions in this class. * * @param name The name of the method to search for * @return The method, or UndefinedMethod if not found */ public CacheEntry searchWithCache(String name) { CacheEntry entry = cacheHit(name); if (entry != null) return entry; // we grab serial number first; the worst that will happen is we cache a later // update with an earlier serial number, which would just flush anyway int token = getGeneration(); DynamicMethod method = searchMethodInner(name); if (method instanceof CacheableMethod) { method = ((CacheableMethod) method).getMethodForCaching(); } return method != null ? addToCache(name, method, token) : addToCache(name, UndefinedMethod.getInstance(), token); }