////////////////////////////////////////
// Programming project code
// UniBw M, 2022, 2023, 2024
// www.unibw.de/inf2
// (c) Mark Minas (mark.minas@unibw.de)
////////////////////////////////////////

package pp.battleship.model;

/**
 * An interface for implementing the Visitor pattern for different types of elements in the Battleship model
 * without returning any result.
 */
public interface VoidVisitor {
    /**
     * Visits a Shot element.
     *
     * @param shot the Shot element to visit
     */
    void visit(Shot shot);

    /**
     * Visits a Battleship element.
     *
     * @param ship the Battleship element to visit
     */
    void visit(Battleship ship);

    /**
     * Visits a Shell element
     * @param shell the Shell element to visit
     */
    void visit(Shell shell);
}
