Class BuiltinProfilingService.DefaultMethodEnhancer

java.lang.Object
org.jruby.runtime.profile.builtin.BuiltinProfilingService.DefaultMethodEnhancer
All Implemented Interfaces:
MethodEnhancer
Enclosing class:
BuiltinProfilingService

private final class BuiltinProfilingService.DefaultMethodEnhancer extends Object implements MethodEnhancer
  • Constructor Details

    • DefaultMethodEnhancer

      private DefaultMethodEnhancer()
  • Method Details

    • enhance

      public DynamicMethod enhance(String id, DynamicMethod delegate)
      Description copied from interface: MethodEnhancer
      Will be called with a method which should be enhanced. e.g. with information or callback invocations required by the profiling. In most cases you don't want to profile all methods, just the methods of your own code. So you can add a simple filter here
       if( isMyCode( delegate ) ) {
           return new ProfilingDynamicMethod( delegate );
       } else {
           return delegate;
       }
       
      Specified by:
      enhance in interface MethodEnhancer
      Parameters:
      id - the name of the given delegate
      delegate - the method to enhance
      Returns:
      the enhanced method. if nothing is to be done, the delegate itself can be returned