package chess.model; import chess.model.pieces.Bishop; import chess.model.pieces.King; import chess.model.pieces.Knight; import chess.model.pieces.Pawn; import chess.model.pieces.Queen; import chess.model.pieces.Rook; public interface PieceVisitor { default T visit(Piece piece) { return piece.accept(this); } T visitPiece(Bishop bishop); T visitPiece(King king); T visitPiece(Knight knight); T visitPiece(Pawn pawn); T visitPiece(Queen queen); T visitPiece(Rook rook); }