package org.eclipse.dltk.ti.statistics; import org.eclipse.dltk.ti.GoalState; import org.eclipse.dltk.ti.goals.GoalEvaluator; import org.eclipse.dltk.ti.goals.IGoal; public interface IEvaluationStatisticsRequestor { /** * Called only once, when root goal were posted * * @param rootGoal */ void evaluationStarted(IGoal rootGoal); /** * Called, when goal state are changed (for ex. pruned) * * @param goal * @param state */ void goalStateChanged(IGoal goal, GoalState state, GoalState oldState); /** * Called if goal were not pruned or considered recursive, and so evalutor * were assigned to it * * @param goal * @param evaluator */ void goalEvaluatorAssigned(IGoal goal, GoalEvaluator evaluator); /** * Called after init() call for some goal evaluator * * @param evaluator * @param subgoals * subgoals, that this evalutor posted * @param time * time, that evaluator spent in init() method */ void evaluatorInitialized(GoalEvaluator evaluator, IGoal[] subgoals, long time); /** * Called, when evaluator accepted subgoal result, i.e. subGoalDone called * * @param evaluator * @param subgoals * @param time */ void evaluatorReceivedResult(GoalEvaluator evaluator, IGoal finishedGoal, IGoal[] newSubgoals, long time); /** * Called, when evaluator finally produced a result * * @param evaluator * @param result * @param time */ void evaluatorProducedResult(GoalEvaluator evaluator, Object result, long time); }