Package org.apache.lucene.sandbox.search

## Class ProfilerCollector

- java.lang.Object
- - org.apache.lucene.sandbox.search.ProfilerCollector

- All Implemented Interfaces:
    `Collector`

      public class ProfilerCollector
      extends Object
      implements Collector

  This class wraps a Collector and times the execution of: - setScorer() - collect() - doSetNextReader() - needsScores()

  QueryProfiler facilitates the linking of the Collector graph

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ProfilerCollector​(Collector collector, String reason, List<ProfilerCollector> children)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected String` | `deriveCollectorName​(Collector c)` | Creates a human-friendly representation of the Collector name.
    `LeafCollector` | `getLeafCollector​(LeafReaderContext context)` |
    `String` | `getName()` |
    `ProfilerCollectorResult` | `getProfileResult()` |
    `String` | `getReason()` |
    `long` | `getTime()` |
    `ScoreMode` | `scoreMode()` |
    `void` | `setWeight​(Weight weight)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ProfilerCollector

          public ProfilerCollector​(Collector collector,
                                   String reason,
                                   List<ProfilerCollector> children)

  - ### Method Detail

    - #### getTime

          public long getTime()

      Returns:
        the profiled time for this collector (inclusive of children)

    - #### getReason

          public String getReason()

      Returns:
        a human readable "hint" about what this collector was used for

    - #### getName

          public String getName()

      Returns:
        the lucene class name of the collector

    - #### deriveCollectorName

          protected String deriveCollectorName​(Collector c)

      Creates a human-friendly representation of the Collector name. Override to customize how the name is derived.
      Parameters:
        `c` - The Collector to derive a name from
      Returns:
        A (hopefully) prettier name

    - #### getLeafCollector

          public LeafCollector getLeafCollector​(LeafReaderContext context)
                                         throws IOException

      Specified by:
        `getLeafCollector` in interface `Collector`
      Throws:
        `IOException`

    - #### setWeight

          public void setWeight​(Weight weight)

      Specified by:
        `setWeight` in interface `Collector`

    - #### scoreMode

          public ScoreMode scoreMode()

      Specified by:
        `scoreMode` in interface `Collector`

    - #### getProfileResult

          public ProfilerCollectorResult getProfileResult()