package org.jboss.windup.graph.model.performance; import org.jboss.windup.graph.model.WindupVertexFrame; import com.tinkerpop.frames.Property; import com.tinkerpop.frames.modules.typedgraph.TypeValue; import java.util.Comparator; /** * This stores the time it takes to execute all of the rules within a particular phase of execution. * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ @TypeValue(RulePhaseExecutionStatisticsModel.TYPE) public interface RulePhaseExecutionStatisticsModel extends WindupVertexFrame { String ORDER_EXECUTED = "orderExecuted"; String RULE_PHASE = "rulePhase"; String TYPE = "RulePhaseExecutionStatisticsModel"; String TIME_TAKEN = "timeTaken"; /** * The phase represented by this model. */ @Property(RULE_PHASE) RulePhaseExecutionStatisticsModel setRulePhase(String phase); /** * The phase represented by this model. */ @Property(RULE_PHASE) String getRulePhase(); /** * The time taken for all of the rules within this phase (in milliseconds) */ @Property(TIME_TAKEN) RulePhaseExecutionStatisticsModel setTimeTaken(int timeTakenMillis); /** * The time taken for all of the rules within this phase (in milliseconds) */ @Property(TIME_TAKEN) int getTimeTaken(); /** * Stores an increasing index indicating the order in which the phases were executed (lower numbers execute earlier than larger numbers). */ @Property(ORDER_EXECUTED) int getOrderExecuted(); /** * Stores an increasing index indicating the order in which the phases were executed (lower numbers execute earlier than larger numbers). */ @Property(ORDER_EXECUTED) void setOrderExecuted(int orderExecuted); Comparator<RulePhaseExecutionStatisticsModel> BY_ORDER_EXECUTED = new Comparator<RulePhaseExecutionStatisticsModel>() { @Override public int compare(RulePhaseExecutionStatisticsModel o1, RulePhaseExecutionStatisticsModel o2) { return o1.getOrderExecuted() - o2.getOrderExecuted(); } }; }