package com.insightfullogic.honest_profiler.framework.checker; import com.insightfullogic.honest_profiler.core.aggregation.grouping.FrameGrouping; import com.insightfullogic.honest_profiler.core.aggregation.grouping.ThreadGrouping; import com.insightfullogic.honest_profiler.core.aggregation.result.straight.Flat; import com.insightfullogic.honest_profiler.core.aggregation.result.straight.Tree; /** * The {@link CheckAdapter} is provided to allow automated checking of a representation of a {@link Flat} or * {@link Tree} aggregation. * <p> * A representation could trivially be the {@link Flat} or {@link Tree} itself, but it could also be a rendered table in * the UI or console. * <p> * @param <T> the type of the representation */ public interface CheckAdapter<T> { /** * Returns the {@link ThreadGrouping} used to construct the aggregation. * <p> * @return the {@link ThreadGrouping} used to construct the aggregation */ ThreadGrouping getThreadGrouping(); /** * Returns the {@link FrameGrouping} used to construct the aggregation. * <p> * @return the {@link FrameGrouping} used to construct the aggregation */ FrameGrouping getFrameGrouping(); /** * Checks that the size of the represented aggregation conforms to the expected value. * <p> * @param expected the expected size of the aggregation */ void assertSizeEquals(int expected); /** * Checks that the self count of the item with the specified aggregation key in the represented aggregation conforms * to the expected value. * <p> * @param expected the expected self count of the aggregated item */ void assertSelfCntEquals(T key, int expected); /** * Checks that the total count of the item with the specified aggregation key in the represented aggregation * conforms to the expected value. * <p> * @param expected the expected total count of the aggregated item */ void assertTotalCntEquals(T key, int expected); /** * Checks that the self time of the item with the specified aggregation key in the represented aggregation conforms * to the expected value. * <p> * @param expected the expected self time of the aggregated item */ void assertSelfTimeEquals(T key, long expected); /** * Checks that the total time of the item with the specified aggregation key in the represented aggregation conforms * to the expected value. * <p> * @param expected the expected total time of the aggregated item */ void assertTotalTimeEquals(T key, long expected); /** * Checks that the self count percent of the item with the specified aggregation key in the represented aggregation * conforms to the expected value. * <p> * @param expected the expected self count percent of the aggregated item */ void assertSelfCntPctEquals(T key, double expected); /** * Checks that the total count percent of the item with the specified aggregation key in the represented aggregation * conforms to the expected value. * <p> * @param expected the expected total count percent of the aggregated item */ void assertTotalCntPctEquals(T key, double expected); /** * Checks that the self time percent of the item with the specified aggregation key in the represented aggregation * conforms to the expected value. * <p> * @param expected the expected self time percent of the aggregated item */ void assertSelfTimePctEquals(T key, double expected); /** * Checks that the total time percent of the item with the specified aggregation key in the represented aggregation * conforms to the expected value. * <p> * @param expected the expected total time percent of the aggregated item */ void assertTotalTimePctEquals(T key, double expected); }