protected final void instrumentPublicMethodsByName(
		Class<?> targetClass,
		Object target,
		String methodName,
		TargetSource targetSource,
		Recorder recorder,
		boolean includeSuperClassMethods)
		throws NonInstrumentableTypeException {

		// getMethods() includes superclass methods.
		for (Method method : targetClass.getMethods()) {
			if (!includeSuperClassMethods &&
				targetClass != method.getDeclaringClass()) {
				continue;
			}

			if (!method.getName().equals(methodName)) {
				continue;
			}

			if (!targetSource.canApply(method)) {
				continue;
			}

			getContext().add(target, method, targetSource, recorder);
		}
	}
Extract and instrument the underlying Java methods for instrumentation.

@param <T>
         Constructor<?> or Method
@param pyReflectedFunction
         The Jython object.
@return A list of Java methods or constructors.
@throws NonInstrumentableTypeException
          If the methods could not be extracted.
ngrinder-runtime/src/main/java/net/grinder/scriptengine/jython/instrumentation/dcr/AbstractJythonDCRInstrumenter.java