code: @SuppressWarnings("unchecked")
    public static void invokeSamplers(Object o) {
      Class<?> currentClass = o.getClass();
      while (currentClass != null) {
        List<ConstructorCallback<?>> samplers = samplerMap.get(currentClass);
        if (samplers != null) {
          // Leave in the @SuppressWarnings, because we define -Werror,
          // and infrastructure sometimes runs with all warnings turned
          // on.  This would be a great place for a typesafe
          // heterogeneous container, but that doesn't work with generic
          // types.
          for (@SuppressWarnings("rawtypes") ConstructorCallback sampler : samplers) {
            sampler.sample(o);
          }
          // Return once the first list of registered samplers are found and
          // invoked.
          return;
        } else {
          // When subclassesAlso is not specified (default), return if no
          // samplers are registered with the type of the currently-constructed
          // object.  Otherwise, traverse upward the class hierarchy.
          if (!subclassesAlso) {
            return;
          }
          currentClass = currentClass.getSuperclass();
        }
      }
    }
docs: Bytecode is rewritten to invoke this method; it calls the sampler for the given class. Note
  that, unless the javaagent command line argument "subclassesAlso" is specified, it won't do
  anything if o is a subclass of the class that was supposed to be tracked.
  
  @param o the object passed to the samplers.