package com.insightfullogic.honest_profiler.core.aggregation; import com.insightfullogic.honest_profiler.core.aggregation.result.diff.DiffNode; import com.insightfullogic.honest_profiler.core.aggregation.result.straight.Entry; import com.insightfullogic.honest_profiler.core.aggregation.result.straight.Node; /** * {@link Entry}s contain some percentage values, which are calculated by dividing one of the other contained values by * a reference value. Several references can make sense in various circumstances. This enumeration lists the various * supported "reference modes" for {@link Entry}s. */ public enum ReferenceMode { /** * Mode which specifies that the aggregated total values of the entire profile are used as reference. */ GLOBAL("Global"), /** * Mode which specifies that for a given {@link Entry}, the aggregated total values of the containing thread are * used as reference. WARNING : This can obviously only be used in aggregations where the {@link Entry}s are * guaranteed to aggregate data from a single thread. */ THREAD("Thread"), /** * Mode which is applicable only to {@link Node}s or {@link DiffNode}s, and which specified that the aggregated * total values of the parent {@link Node} or {@link DiffNode} is used as reference. */ PARENT("Parent"); // Instance Properties private String name; // Instance Constructors /** * Constructor specifying a display name for the ReferenceMode. * <p> * @param name the display name for the ReferenceMode */ private ReferenceMode(String name) { this.name = name; } // Object Implementation @Override public String toString() { return this.name; } }