Package org.apache.uima.util.impl

# Class ProcessTrace_impl

java.lang.Object
org.apache.uima.util.impl.ProcessTrace_impl

All Implemented Interfaces:
  `Serializable`, `ProcessTrace`

public class ProcessTrace_impl extends Object implements ProcessTrace
Reference implementation of `ProcessTrace`.

See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static ProcessTrace`
  `disabledProcessTrace`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ProcessTrace_impl()`
  Create a ProcessTrace_impl using the framework's default timer.
  `ProcessTrace_impl(Properties aPerformanceTuningSettings)`
  Create a ProcessTrace_impl using the framework's default timer.
  `ProcessTrace_impl(UimaTimer aTimer)`
  Create a ProcessTrace_impl with a custom timer.
  `ProcessTrace_impl(UimaTimer aTimer, Properties aPerformanceTuningSettings)`
  Create a ProcessTrace_impl with a custom timer.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addAll(List<ProcessTraceEvent> aEventList)`
  Adds a list of completed event objects to this `ProcessTrace`.
  `void`
  `addEvent(String aComponentName, String aType, String aDescription, int aDuration, String aResultMsg)`
  Adds an event with the specified parameters to this `ProcessTrace`.
  `void`
  `addEvent(ProcessTraceEvent aEvent)`
  Adds a completed event object to this `ProcessTrace`.
  `void`
  `aggregate(ProcessTrace aProcessTrace)`
  Aggregates the information in another `ProcessTrace` with this one.
  `protected void`
  `aggregateEvent(ProcessTraceEvent_impl aDest, ProcessTraceEvent_impl aSrc)`
  `void`
  `clear()`
  Resets this `ProcessTrace` by removing all events.
  `void`
  `endEvent(String aComponentName, String aEventType, String aResultMessage)`
  Records the end of an event.
  `protected <T extends ProcessTraceEvent>
  T`
  `findCorrespondingEvent(List<T> aEventList, T aEvent)`
  `ProcessTraceEvent`
  `getEvent(String aComponentName, String aType)`
  Get a specified event.
  `protected ProcessTraceEvent`
  `getEvent(List<ProcessTraceEvent> aEvents, String aComponentName, String aType)`
  `List<ProcessTraceEvent>`
  `getEvents()`
  Gets a list of `ProcessTraceEvent`s, in the order in which they were created.
  `List<ProcessTraceEvent>`
  `getEventsByComponentName(String aComponentName, boolean aRecurseAfterMatch)`
  Gets all events that have the given Component name.
  `protected void`
  `getEventsByComponentName(ProcessTraceEvent aEvent, String aComponentName, boolean aRecurseAfterMatch, List<ProcessTraceEvent> aResultList)`
  Utility method used by getEventsByComponentName(String) *
  `List<ProcessTraceEvent>`
  `getEventsByType(String aType, boolean aRecurseAfterMatch)`
  Gets all events that have the given type
  `protected void`
  `getEventsByType(ProcessTraceEvent aEvent, String aType, boolean aRecurseAfterMatch, List<ProcessTraceEvent> aResultList)`
  Utility method used by getEventsByType(String)
  `void`
  `startEvent(String aComponentName, String aEventType, String aDescription)`
  Records the start of an event.
  `String`
  `toString()`
  Generates a user-readable representation of all events in this `ProcessTrace`.

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

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

- ## Field Details

  - ### disabledProcessTrace

    public static ProcessTrace disabledProcessTrace

- ## Constructor Details

  - ### ProcessTrace_impl

    public ProcessTrace_impl()
    Create a ProcessTrace_impl using the framework's default timer.

  - ### ProcessTrace_impl

    public ProcessTrace_impl(Properties aPerformanceTuningSettings)
    Create a ProcessTrace_impl using the framework's default timer.
    Parameters:
      `aPerformanceTuningSettings` - performance tuning settings. One of the settings allows the ProcessTrace to be disabled.

  - ### ProcessTrace_impl

    public ProcessTrace_impl(UimaTimer aTimer)
    Create a ProcessTrace_impl with a custom timer.
    Parameters:
      `aTimer` - the timer to use for collecting performance stats

  - ### ProcessTrace_impl

    public ProcessTrace_impl(UimaTimer aTimer, Properties aPerformanceTuningSettings)
    Create a ProcessTrace_impl with a custom timer.
    Parameters:
      `aTimer` - the timer to use for collecting performance stats
      `aPerformanceTuningSettings` - performance tuning settings. One of the settings allows the ProcessTrace to be disabled.

- ## Method Details

  - ### startEvent

    public void startEvent(String aComponentName, String aEventType, String aDescription)
    Description copied from interface: `ProcessTrace`
    Records the start of an event. The event will be ended when there is a corresponding call to `ProcessTrace.endEvent(String,String,String)` with the same component name and event type. The duration of the event will be automatically computed from the difference in time between the start and end.
    Specified by:
      `startEvent` in interface `ProcessTrace`
    Parameters:
      `aComponentName` - name of the component generating the event
      `aEventType` - type of the event. Standard types are defined as constants on the `ProcessTraceEvent` interface, but any string may be used.
      `aDescription` - description of the event
    See Also:
      - `ProcessTrace.startEvent(java.lang.String, java.lang.String, java.lang.String)`

  - ### endEvent

    public void endEvent(String aComponentName, String aEventType, String aResultMessage)
    Description copied from interface: `ProcessTrace`
    Records the end of an event. The event is identified by the component name and type. If there is no open event that matches those values, a `UIMA_IllegalStateException` will be thrown.
    Specified by:
      `endEvent` in interface `ProcessTrace`
    Parameters:
      `aComponentName` - name of the component generating the event
      `aEventType` - type of the event. Standard types are defined as constants on the `ProcessTraceEvent` interface, but any string may be used.
      `aResultMessage` - describes the result of the event
    See Also:
      - `ProcessTrace.endEvent(java.lang.String, java.lang.String, java.lang.String)`

  - ### addEvent

    public void addEvent(String aComponentName, String aType, String aDescription, int aDuration, String aResultMsg)
    Description copied from interface: `ProcessTrace`
    Adds an event with the specified parameters to this `ProcessTrace`.
    Specified by:
      `addEvent` in interface `ProcessTrace`
    Parameters:
      `aComponentName` - name of the component generating the event
      `aType` - type of the event. Standard types are defined as constants on the `ProcessTraceEvent` interface, but any string may be used.
      `aDescription` - description of the event
      `aDuration` - duration of the event in milliseconds
      `aResultMsg` - result message of event
    See Also:
      - `ProcessTrace.addEvent(String, String, String, int, String)`

  - ### addEvent

    public void addEvent(ProcessTraceEvent aEvent)
    Description copied from interface: `ProcessTrace`
    Adds a completed event object to this `ProcessTrace`. This method is useful for copying events from one ProcessTrace into another.
    Specified by:
      `addEvent` in interface `ProcessTrace`
    Parameters:
      `aEvent` - the event object to be added to this `ProcessTrace`
    See Also:
      - `ProcessTrace.addEvent(org.apache.uima.util.ProcessTraceEvent)`

  - ### addAll

    public void addAll(List<ProcessTraceEvent> aEventList)
    Description copied from interface: `ProcessTrace`
    Adds a list of completed event objects to this `ProcessTrace`. This method is useful for copying events from one ProcessTrace into another.
    Specified by:
      `addAll` in interface `ProcessTrace`
    Parameters:
      `aEventList` - a List of event object to be added to this `ProcessTrace`
    See Also:
      - `ProcessTrace.addAll(java.util.List)`

  - ### getEvents

    public List<ProcessTraceEvent> getEvents()
    Description copied from interface: `ProcessTrace`
    Gets a list of `ProcessTraceEvent`s, in the order in which they were created. This is generally chronological order.
    Specified by:
      `getEvents` in interface `ProcessTrace`
    Returns:
      an unmodifiable List of `ProcessTraceEvent`s
    See Also:
      - `ProcessTrace.getEvents()`

  - ### getEventsByComponentName

    public List<ProcessTraceEvent> getEventsByComponentName(String aComponentName, boolean aRecurseAfterMatch)
    Description copied from interface: `ProcessTrace`
    Gets all events that have the given Component name.
    Specified by:
      `getEventsByComponentName` in interface `ProcessTrace`
    Parameters:
      `aComponentName` - the component name to look for
      `aRecurseAfterMatch` - if true, all events with the given component name will be returned. If false, this method will not recurse into the sub-events of a matching event.
    Returns:
      a List of ProcessTraceEvents having the given component name
    See Also:
      - `ProcessTrace.getEventsByComponentName(String, boolean)`

  - ### getEventsByType

    public List<ProcessTraceEvent> getEventsByType(String aType, boolean aRecurseAfterMatch)
    Description copied from interface: `ProcessTrace`
    Gets all events that have the given type
    Specified by:
      `getEventsByType` in interface `ProcessTrace`
    Parameters:
      `aType` - the type of event to look for
      `aRecurseAfterMatch` - if true, all events with the given component name will be returned. If false, this method will not recurse into the sub-events of a matching event.
    Returns:
      a List of ProcessTraceEvents having the given type
    See Also:
      - `ProcessTrace.getEventsByType(String, boolean)`

  - ### getEvent

    public ProcessTraceEvent getEvent(String aComponentName, String aType)
    Description copied from interface: `ProcessTrace`
    Get a specified event.
    Specified by:
      `getEvent` in interface `ProcessTrace`
    Parameters:
      `aComponentName` - name of component producing desired event
      `aType` - type of desired event
    Returns:
      the first ProcessTraceEvent matching the parameters, `null` if there is no such event.
    See Also:
      - `ProcessTrace.getEvent(String, String)`

  - ### getEvent

    protected ProcessTraceEvent getEvent(List<ProcessTraceEvent> aEvents, String aComponentName, String aType)

  - ### clear

    public void clear()
    Description copied from interface: `ProcessTrace`
    Resets this `ProcessTrace` by removing all events.
    Specified by:
      `clear` in interface `ProcessTrace`
    See Also:
      - `ProcessTrace.clear()`

  - ### aggregate

    public void aggregate(ProcessTrace aProcessTrace)
    Description copied from interface: `ProcessTrace`
    Aggregates the information in another `ProcessTrace` with this one. Events that exist in both ProcessTraces will have their durations added together. This method is useful for collecting aggregate performance statistics for collection processing.
    Specified by:
      `aggregate` in interface `ProcessTrace`
    Parameters:
      `aProcessTrace` - the Process Trace object whose information will be combined with the information in this object
    See Also:
      - `ProcessTrace.aggregate(org.apache.uima.util.ProcessTrace)`

  - ### toString

    public String toString()
    Description copied from interface: `ProcessTrace`
    Generates a user-readable representation of all events in this `ProcessTrace`.
    Specified by:
      `toString` in interface `ProcessTrace`
    Overrides:
      `toString` in class `Object`
    Returns:
      the String representation of all events in this `ProcessTrace`.
    See Also:
      - `ProcessTrace.toString()`

  - ### getEventsByComponentName

    protected void getEventsByComponentName(ProcessTraceEvent aEvent, String aComponentName, boolean aRecurseAfterMatch, List<ProcessTraceEvent> aResultList)
    Utility method used by getEventsByComponentName(String) *
    Parameters:
      `aEvent` - -
      `aComponentName` - -
      `aRecurseAfterMatch` - -
      `aResultList` - -

  - ### getEventsByType

    protected void getEventsByType(ProcessTraceEvent aEvent, String aType, boolean aRecurseAfterMatch, List<ProcessTraceEvent> aResultList)
    Utility method used by getEventsByType(String)
    Parameters:
      `aEvent` - -
      `aType` - -
      `aRecurseAfterMatch` - -
      `aResultList` - -

  - ### findCorrespondingEvent

    protected <T extends ProcessTraceEvent> T findCorrespondingEvent(List<T> aEventList, T aEvent)

  - ### aggregateEvent

    protected void aggregateEvent(ProcessTraceEvent_impl aDest, ProcessTraceEvent_impl aSrc)