package nl.jft.logic.match.event;

import nl.jft.logic.match.Match;
import nl.jft.logic.match.event.impl.GoalRemovedEvent;
import nl.jft.logic.match.event.impl.GoalScoredEvent;
import nl.jft.logic.match.event.impl.MatchStatusChangedEvent;

/**
 * A {@code MatchListener} can be used to get notified about certain events in a {@link Match}.
 *
 * @author Lesley
 */
public interface MatchListener {

    /**
     * The {@code onMatchStatusChanged} method gets called whenever a {@link nl.jft.logic.match.MatchStatus}
     * change occurs in a {@link Match}. This method blocks, so make sure to keep the return time as low as possible.
     *
     * @param event The {@link MatchStatusChangedEvent} that occurred in the {@code Match}.
     */
    void onMatchStatusChanged(MatchStatusChangedEvent event);

    /**
     * The {@code onGoalScored} method gets called whenever a {@link nl.jft.logic.match.Goal}
     * is scored in a {@link Match}. This method blocks, so make sure to keep the return time as low as possible.
     *
     * @param event The {@link GoalScoredEvent} that occurred in the {@code Match}.
     */
    void onGoalScored(GoalScoredEvent event);

    /**
     * The {@code onGoalRemoved} method gets called whenever a {@link nl.jft.logic.match.Goal}
     * is removed from a {@link Match}. This method blocks, so make sure to keep the return time as low as possible.
     *
     * @param event The {@link GoalRemovedEvent} that occurred in the {@code Match}.
     */
    void onGoalRemoved(GoalRemovedEvent event);

}

package nl.jft.logic.match.event;

import nl.jft.logic.match.Match;
import nl.jft.logic.match.event.impl.GoalRemovedEvent;
import nl.jft.logic.match.event.impl.GoalScoredEvent;
import nl.jft.logic.match.event.impl.MatchStatusChangedEvent;

/**
 * A {@code MatchListener} can be used to get notified about certain events in a {@link Match}.
 *
 * @author Lesley
 */
public interface MatchListener {

    void onMatchStatusChanged(MatchStatusChangedEvent event);

    void onGoalScored(GoalScoredEvent event);

    void onGoalRemoved(GoalRemovedEvent event);

}

--- 
+++ 
@@ -12,10 +12,28 @@
  */
 public interface MatchListener {
 
+    /**
+     * The {@code onMatchStatusChanged} method gets called whenever a {@link nl.jft.logic.match.MatchStatus}
+     * change occurs in a {@link Match}. This method blocks, so make sure to keep the return time as low as possible.
+     *
+     * @param event The {@link MatchStatusChangedEvent} that occurred in the {@code Match}.
+     */
     void onMatchStatusChanged(MatchStatusChangedEvent event);
 
+    /**
+     * The {@code onGoalScored} method gets called whenever a {@link nl.jft.logic.match.Goal}
+     * is scored in a {@link Match}. This method blocks, so make sure to keep the return time as low as possible.
+     *
+     * @param event The {@link GoalScoredEvent} that occurred in the {@code Match}.
+     */
     void onGoalScored(GoalScoredEvent event);
 
+    /**
+     * The {@code onGoalRemoved} method gets called whenever a {@link nl.jft.logic.match.Goal}
+     * is removed from a {@link Match}. This method blocks, so make sure to keep the return time as low as possible.
+     *
+     * @param event The {@link GoalRemovedEvent} that occurred in the {@code Match}.
+     */
     void onGoalRemoved(GoalRemovedEvent event);
 
 }
Add missing documentation to interface.
