diff --git a/src/main/java/com/gatomalvado/chess/service/Board8PosValidator.java b/src/main/java/com/gatomalvado/chess/service/Board8PosValidator.java deleted file mode 100644 index 6476444..0000000 --- a/src/main/java/com/gatomalvado/chess/service/Board8PosValidator.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.gatomalvado.chess.service; - -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Board8; -import com.gatomalvado.chess.model.Move; -import com.gatomalvado.chess.model.Piece; -import com.gatomalvado.chess.model.Position; -import com.gatomalvado.chess.model.Player; - -public interface Board8PosValidator { - - boolean validate(AbstractBoard board, Move move); - -} diff --git a/src/main/java/com/gatomalvado/chess/service/IBoardInitializer.java b/src/main/java/com/gatomalvado/chess/service/IBoardInitializer.java deleted file mode 100644 index 1d8b5d2..0000000 --- a/src/main/java/com/gatomalvado/chess/service/IBoardInitializer.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gatomalvado.chess.service; - -import java.util.List; - -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Piece; - -public interface IBoardInitializer { - public List initializeBoard(AbstractBoard board); -} diff --git a/src/main/java/com/gatomalvado/chess/service/IPieceMoveValidator.java b/src/main/java/com/gatomalvado/chess/service/IPieceMoveValidator.java deleted file mode 100644 index 6b92c6f..0000000 --- a/src/main/java/com/gatomalvado/chess/service/IPieceMoveValidator.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.gatomalvado.chess.service; - -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Board8; -import com.gatomalvado.chess.model.Move; -import com.gatomalvado.chess.model.Piece; -import com.gatomalvado.chess.model.Position; - -public interface IPieceMoveValidator { - boolean validate(Move move, AbstractBoard board); -} diff --git a/src/main/java/com/gatomalvado/chess/Main.java b/src/main/java/com/gatomalvado/done/chess/Main.java similarity index 60% rename from src/main/java/com/gatomalvado/chess/Main.java rename to src/main/java/com/gatomalvado/done/chess/Main.java index 1373c32..98fbe84 100644 --- a/src/main/java/com/gatomalvado/chess/Main.java +++ b/src/main/java/com/gatomalvado/done/chess/Main.java @@ -1,11 +1,11 @@ -package com.gatomalvado.chess; +package com.gatomalvado.done.chess; -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Board8; -import com.gatomalvado.chess.model.Player; -import com.gatomalvado.chess.model.enums.PlayerType; -import com.gatomalvado.chess.orchestrator.ChessOrchestrator; -import com.gatomalvado.chess.service.impl.BoardFactory; +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Board8; +import com.gatomalvado.done.chess.model.Player; +import com.gatomalvado.done.chess.model.enums.PlayerType; +import com.gatomalvado.done.chess.orchestrator.ChessOrchestrator; +import com.gatomalvado.done.chess.service.impl.BoardFactory; public class Main { diff --git a/src/main/java/com/gatomalvado/chess/model/AbstractBoard.java b/src/main/java/com/gatomalvado/done/chess/model/AbstractBoard.java similarity index 93% rename from src/main/java/com/gatomalvado/chess/model/AbstractBoard.java rename to src/main/java/com/gatomalvado/done/chess/model/AbstractBoard.java index 6e1d518..19e13e9 100644 --- a/src/main/java/com/gatomalvado/chess/model/AbstractBoard.java +++ b/src/main/java/com/gatomalvado/done/chess/model/AbstractBoard.java @@ -1,7 +1,4 @@ -package com.gatomalvado.chess.model; - -import java.util.HashMap; -import java.util.Map; +package com.gatomalvado.done.chess.model; import lombok.Getter; diff --git a/src/main/java/com/gatomalvado/chess/model/Board8.java b/src/main/java/com/gatomalvado/done/chess/model/Board8.java similarity index 94% rename from src/main/java/com/gatomalvado/chess/model/Board8.java rename to src/main/java/com/gatomalvado/done/chess/model/Board8.java index d53eed2..31276c9 100644 --- a/src/main/java/com/gatomalvado/chess/model/Board8.java +++ b/src/main/java/com/gatomalvado/done/chess/model/Board8.java @@ -1,9 +1,7 @@ -package com.gatomalvado.chess.model; +package com.gatomalvado.done.chess.model; import java.util.Map; -import lombok.Getter; - public class Board8 extends AbstractBoard { private static final int SIZE = 8; diff --git a/src/main/java/com/gatomalvado/chess/model/Move.java b/src/main/java/com/gatomalvado/done/chess/model/Move.java similarity index 77% rename from src/main/java/com/gatomalvado/chess/model/Move.java rename to src/main/java/com/gatomalvado/done/chess/model/Move.java index 1968eb0..571899d 100644 --- a/src/main/java/com/gatomalvado/chess/model/Move.java +++ b/src/main/java/com/gatomalvado/done/chess/model/Move.java @@ -1,7 +1,6 @@ -package com.gatomalvado.chess.model; +package com.gatomalvado.done.chess.model; import lombok.AllArgsConstructor; -import lombok.Data; import lombok.Getter; @Getter diff --git a/src/main/java/com/gatomalvado/chess/model/Piece.java b/src/main/java/com/gatomalvado/done/chess/model/Piece.java similarity index 79% rename from src/main/java/com/gatomalvado/chess/model/Piece.java rename to src/main/java/com/gatomalvado/done/chess/model/Piece.java index 0cbe49e..a48b4e2 100644 --- a/src/main/java/com/gatomalvado/chess/model/Piece.java +++ b/src/main/java/com/gatomalvado/done/chess/model/Piece.java @@ -1,9 +1,8 @@ -package com.gatomalvado.chess.model; +package com.gatomalvado.done.chess.model; -import com.gatomalvado.chess.model.enums.PieceType; -import com.gatomalvado.chess.model.enums.PlayerType; +import com.gatomalvado.done.chess.model.enums.PieceType; +import com.gatomalvado.done.chess.model.enums.PlayerType; -import lombok.Data; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/com/gatomalvado/chess/model/Player.java b/src/main/java/com/gatomalvado/done/chess/model/Player.java similarity index 70% rename from src/main/java/com/gatomalvado/chess/model/Player.java rename to src/main/java/com/gatomalvado/done/chess/model/Player.java index 271b5bb..b86f51d 100644 --- a/src/main/java/com/gatomalvado/chess/model/Player.java +++ b/src/main/java/com/gatomalvado/done/chess/model/Player.java @@ -1,6 +1,6 @@ -package com.gatomalvado.chess.model; +package com.gatomalvado.done.chess.model; -import com.gatomalvado.chess.model.enums.PlayerType; +import com.gatomalvado.done.chess.model.enums.PlayerType; import lombok.Getter; diff --git a/src/main/java/com/gatomalvado/chess/model/Position.java b/src/main/java/com/gatomalvado/done/chess/model/Position.java similarity index 88% rename from src/main/java/com/gatomalvado/chess/model/Position.java rename to src/main/java/com/gatomalvado/done/chess/model/Position.java index f2b595e..218966e 100644 --- a/src/main/java/com/gatomalvado/chess/model/Position.java +++ b/src/main/java/com/gatomalvado/done/chess/model/Position.java @@ -1,4 +1,4 @@ -package com.gatomalvado.chess.model; +package com.gatomalvado.done.chess.model; import lombok.Getter; diff --git a/src/main/java/com/gatomalvado/chess/model/enums/PieceType.java b/src/main/java/com/gatomalvado/done/chess/model/enums/PieceType.java similarity index 78% rename from src/main/java/com/gatomalvado/chess/model/enums/PieceType.java rename to src/main/java/com/gatomalvado/done/chess/model/enums/PieceType.java index f7226de..033e94b 100644 --- a/src/main/java/com/gatomalvado/chess/model/enums/PieceType.java +++ b/src/main/java/com/gatomalvado/done/chess/model/enums/PieceType.java @@ -1,6 +1,4 @@ -package com.gatomalvado.chess.model.enums; - -import java.util.List; +package com.gatomalvado.done.chess.model.enums; public enum PieceType { diff --git a/src/main/java/com/gatomalvado/chess/model/enums/PlayerType.java b/src/main/java/com/gatomalvado/done/chess/model/enums/PlayerType.java similarity index 77% rename from src/main/java/com/gatomalvado/chess/model/enums/PlayerType.java rename to src/main/java/com/gatomalvado/done/chess/model/enums/PlayerType.java index 9198d38..f4e691b 100644 --- a/src/main/java/com/gatomalvado/chess/model/enums/PlayerType.java +++ b/src/main/java/com/gatomalvado/done/chess/model/enums/PlayerType.java @@ -1,4 +1,4 @@ -package com.gatomalvado.chess.model.enums; +package com.gatomalvado.done.chess.model.enums; public enum PlayerType { diff --git a/src/main/java/com/gatomalvado/chess/orchestrator/ChessOrchestrator.java b/src/main/java/com/gatomalvado/done/chess/orchestrator/ChessOrchestrator.java similarity index 80% rename from src/main/java/com/gatomalvado/chess/orchestrator/ChessOrchestrator.java rename to src/main/java/com/gatomalvado/done/chess/orchestrator/ChessOrchestrator.java index 64ed8b7..4ce61b0 100644 --- a/src/main/java/com/gatomalvado/chess/orchestrator/ChessOrchestrator.java +++ b/src/main/java/com/gatomalvado/done/chess/orchestrator/ChessOrchestrator.java @@ -1,17 +1,17 @@ -package com.gatomalvado.chess.orchestrator; +package com.gatomalvado.done.chess.orchestrator; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Move; -import com.gatomalvado.chess.model.Piece; -import com.gatomalvado.chess.model.Player; -import com.gatomalvado.chess.model.Position; -import com.gatomalvado.chess.service.impl.BoardFactory; -import com.gatomalvado.chess.service.IPieceMoveValidator; +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Move; +import com.gatomalvado.done.chess.model.Piece; +import com.gatomalvado.done.chess.model.Player; +import com.gatomalvado.done.chess.model.Position; +import com.gatomalvado.done.chess.service.IPieceMoveValidator; +import com.gatomalvado.done.chess.service.impl.BoardFactory; import lombok.Getter; diff --git a/src/main/java/com/gatomalvado/done/chess/service/Board8PosValidator.java b/src/main/java/com/gatomalvado/done/chess/service/Board8PosValidator.java new file mode 100644 index 0000000..9755e6b --- /dev/null +++ b/src/main/java/com/gatomalvado/done/chess/service/Board8PosValidator.java @@ -0,0 +1,10 @@ +package com.gatomalvado.done.chess.service; + +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Move; + +public interface Board8PosValidator { + + boolean validate(AbstractBoard board, Move move); + +} diff --git a/src/main/java/com/gatomalvado/done/chess/service/IBoardInitializer.java b/src/main/java/com/gatomalvado/done/chess/service/IBoardInitializer.java new file mode 100644 index 0000000..d23821d --- /dev/null +++ b/src/main/java/com/gatomalvado/done/chess/service/IBoardInitializer.java @@ -0,0 +1,10 @@ +package com.gatomalvado.done.chess.service; + +import java.util.List; + +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Piece; + +public interface IBoardInitializer { + public List initializeBoard(AbstractBoard board); +} diff --git a/src/main/java/com/gatomalvado/done/chess/service/IPieceMoveValidator.java b/src/main/java/com/gatomalvado/done/chess/service/IPieceMoveValidator.java new file mode 100644 index 0000000..ff7bd87 --- /dev/null +++ b/src/main/java/com/gatomalvado/done/chess/service/IPieceMoveValidator.java @@ -0,0 +1,8 @@ +package com.gatomalvado.done.chess.service; + +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Move; + +public interface IPieceMoveValidator { + boolean validate(Move move, AbstractBoard board); +} diff --git a/src/main/java/com/gatomalvado/chess/service/impl/BoardFactory.java b/src/main/java/com/gatomalvado/done/chess/service/impl/BoardFactory.java similarity index 74% rename from src/main/java/com/gatomalvado/chess/service/impl/BoardFactory.java rename to src/main/java/com/gatomalvado/done/chess/service/impl/BoardFactory.java index 2ed9083..8c3141f 100644 --- a/src/main/java/com/gatomalvado/chess/service/impl/BoardFactory.java +++ b/src/main/java/com/gatomalvado/done/chess/service/impl/BoardFactory.java @@ -1,11 +1,11 @@ -package com.gatomalvado.chess.service.impl; - -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Board8; -import com.gatomalvado.chess.service.IBoardInitializer; -import com.gatomalvado.chess.service.IPieceMoveValidator; -import com.gatomalvado.chess.service.impl.board8.Board8Initializer; -import com.gatomalvado.chess.service.impl.board8.Board8PieceMoveValidator; +package com.gatomalvado.done.chess.service.impl; + +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Board8; +import com.gatomalvado.done.chess.service.IBoardInitializer; +import com.gatomalvado.done.chess.service.IPieceMoveValidator; +import com.gatomalvado.done.chess.service.impl.board8.Board8Initializer; +import com.gatomalvado.done.chess.service.impl.board8.Board8PieceMoveValidator; public class BoardFactory { diff --git a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8BishopPosValidator.java b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8BishopPosValidator.java similarity index 80% rename from src/main/java/com/gatomalvado/chess/service/impl/board8/Board8BishopPosValidator.java rename to src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8BishopPosValidator.java index 3c740b2..277586d 100644 --- a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8BishopPosValidator.java +++ b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8BishopPosValidator.java @@ -1,12 +1,11 @@ -package com.gatomalvado.chess.service.impl.board8; +package com.gatomalvado.done.chess.service.impl.board8; -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Board8; -import com.gatomalvado.chess.model.Move; -import com.gatomalvado.chess.model.Piece; -import com.gatomalvado.chess.model.Position; -import com.gatomalvado.chess.model.enums.PlayerType; -import com.gatomalvado.chess.service.Board8PosValidator; +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Move; +import com.gatomalvado.done.chess.model.Piece; +import com.gatomalvado.done.chess.model.Position; +import com.gatomalvado.done.chess.model.enums.PlayerType; +import com.gatomalvado.done.chess.service.Board8PosValidator; public class Board8BishopPosValidator implements Board8PosValidator { diff --git a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8Initializer.java b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8Initializer.java similarity index 86% rename from src/main/java/com/gatomalvado/chess/service/impl/board8/Board8Initializer.java rename to src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8Initializer.java index 2fcb230..3b32bfd 100644 --- a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8Initializer.java +++ b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8Initializer.java @@ -1,15 +1,20 @@ -package com.gatomalvado.chess.service.impl.board8; +package com.gatomalvado.done.chess.service.impl.board8; -import static com.gatomalvado.chess.model.enums.PieceType.*; +import static com.gatomalvado.done.chess.model.enums.PieceType.BISHOP; +import static com.gatomalvado.done.chess.model.enums.PieceType.KING; +import static com.gatomalvado.done.chess.model.enums.PieceType.KNIGHT; +import static com.gatomalvado.done.chess.model.enums.PieceType.PAWN; +import static com.gatomalvado.done.chess.model.enums.PieceType.QUEEN; +import static com.gatomalvado.done.chess.model.enums.PieceType.ROOK; import java.util.ArrayList; import java.util.List; -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Piece; -import com.gatomalvado.chess.model.Position; -import com.gatomalvado.chess.model.enums.PlayerType; -import com.gatomalvado.chess.service.IBoardInitializer; +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Piece; +import com.gatomalvado.done.chess.model.Position; +import com.gatomalvado.done.chess.model.enums.PlayerType; +import com.gatomalvado.done.chess.service.IBoardInitializer; public class Board8Initializer implements IBoardInitializer { diff --git a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8KingPosValidator.java b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8KingPosValidator.java similarity index 79% rename from src/main/java/com/gatomalvado/chess/service/impl/board8/Board8KingPosValidator.java rename to src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8KingPosValidator.java index 3d0406b..a106ea8 100644 --- a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8KingPosValidator.java +++ b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8KingPosValidator.java @@ -1,12 +1,11 @@ -package com.gatomalvado.chess.service.impl.board8; +package com.gatomalvado.done.chess.service.impl.board8; import java.util.List; -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Board8; -import com.gatomalvado.chess.model.Move; -import com.gatomalvado.chess.model.Position; -import com.gatomalvado.chess.service.Board8PosValidator; +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Move; +import com.gatomalvado.done.chess.model.Position; +import com.gatomalvado.done.chess.service.Board8PosValidator; public class Board8KingPosValidator implements Board8PosValidator { diff --git a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8KnightPosValidator.java b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8KnightPosValidator.java similarity index 79% rename from src/main/java/com/gatomalvado/chess/service/impl/board8/Board8KnightPosValidator.java rename to src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8KnightPosValidator.java index a98c6a8..dde9bc6 100644 --- a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8KnightPosValidator.java +++ b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8KnightPosValidator.java @@ -1,12 +1,11 @@ -package com.gatomalvado.chess.service.impl.board8; +package com.gatomalvado.done.chess.service.impl.board8; import java.util.List; -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Board8; -import com.gatomalvado.chess.model.Move; -import com.gatomalvado.chess.model.Position; -import com.gatomalvado.chess.service.Board8PosValidator; +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Move; +import com.gatomalvado.done.chess.model.Position; +import com.gatomalvado.done.chess.service.Board8PosValidator; public class Board8KnightPosValidator implements Board8PosValidator { diff --git a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8PawnValidator.java b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8PawnValidator.java similarity index 81% rename from src/main/java/com/gatomalvado/chess/service/impl/board8/Board8PawnValidator.java rename to src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8PawnValidator.java index f9b725d..022efcc 100644 --- a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8PawnValidator.java +++ b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8PawnValidator.java @@ -1,13 +1,11 @@ -package com.gatomalvado.chess.service.impl.board8; +package com.gatomalvado.done.chess.service.impl.board8; -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Board8; -import com.gatomalvado.chess.model.Move; -import com.gatomalvado.chess.model.Piece; -import com.gatomalvado.chess.model.Position; -import com.gatomalvado.chess.model.enums.PlayerType; -import com.gatomalvado.chess.service.Board8PosValidator; -import com.gatomalvado.snakesandladders.model.Player; +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Move; +import com.gatomalvado.done.chess.model.Piece; +import com.gatomalvado.done.chess.model.Position; +import com.gatomalvado.done.chess.model.enums.PlayerType; +import com.gatomalvado.done.chess.service.Board8PosValidator; public class Board8PawnValidator implements Board8PosValidator { diff --git a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8PieceMoveValidator.java b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8PieceMoveValidator.java similarity index 68% rename from src/main/java/com/gatomalvado/chess/service/impl/board8/Board8PieceMoveValidator.java rename to src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8PieceMoveValidator.java index f29a760..5f90336 100644 --- a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8PieceMoveValidator.java +++ b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8PieceMoveValidator.java @@ -1,16 +1,13 @@ -package com.gatomalvado.chess.service.impl.board8; +package com.gatomalvado.done.chess.service.impl.board8; import java.util.HashMap; import java.util.Map; -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Board8; -import com.gatomalvado.chess.model.Move; -import com.gatomalvado.chess.model.Piece; -import com.gatomalvado.chess.model.Position; -import com.gatomalvado.chess.model.enums.PieceType; -import com.gatomalvado.chess.service.Board8PosValidator; -import com.gatomalvado.chess.service.IPieceMoveValidator; +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Move; +import com.gatomalvado.done.chess.model.enums.PieceType; +import com.gatomalvado.done.chess.service.Board8PosValidator; +import com.gatomalvado.done.chess.service.IPieceMoveValidator; public class Board8PieceMoveValidator implements IPieceMoveValidator { diff --git a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8QueenPosValidator.java b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8QueenPosValidator.java similarity index 69% rename from src/main/java/com/gatomalvado/chess/service/impl/board8/Board8QueenPosValidator.java rename to src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8QueenPosValidator.java index 8fb93d1..fb0475e 100644 --- a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8QueenPosValidator.java +++ b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8QueenPosValidator.java @@ -1,12 +1,11 @@ -package com.gatomalvado.chess.service.impl.board8; +package com.gatomalvado.done.chess.service.impl.board8; import java.util.List; -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Board8; -import com.gatomalvado.chess.model.Move; -import com.gatomalvado.chess.model.Position; -import com.gatomalvado.chess.service.Board8PosValidator; +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Move; +import com.gatomalvado.done.chess.model.Position; +import com.gatomalvado.done.chess.service.Board8PosValidator; public class Board8QueenPosValidator implements Board8PosValidator { diff --git a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8RookPosValidator.java b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8RookPosValidator.java similarity index 79% rename from src/main/java/com/gatomalvado/chess/service/impl/board8/Board8RookPosValidator.java rename to src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8RookPosValidator.java index 97a5419..5c7531d 100644 --- a/src/main/java/com/gatomalvado/chess/service/impl/board8/Board8RookPosValidator.java +++ b/src/main/java/com/gatomalvado/done/chess/service/impl/board8/Board8RookPosValidator.java @@ -1,14 +1,11 @@ -package com.gatomalvado.chess.service.impl.board8; - -import java.util.List; - -import com.gatomalvado.chess.model.AbstractBoard; -import com.gatomalvado.chess.model.Board8; -import com.gatomalvado.chess.model.Move; -import com.gatomalvado.chess.model.Piece; -import com.gatomalvado.chess.model.Position; -import com.gatomalvado.chess.model.enums.PlayerType; -import com.gatomalvado.chess.service.Board8PosValidator; +package com.gatomalvado.done.chess.service.impl.board8; + +import com.gatomalvado.done.chess.model.AbstractBoard; +import com.gatomalvado.done.chess.model.Move; +import com.gatomalvado.done.chess.model.Piece; +import com.gatomalvado.done.chess.model.Position; +import com.gatomalvado.done.chess.model.enums.PlayerType; +import com.gatomalvado.done.chess.service.Board8PosValidator; public class Board8RookPosValidator implements Board8PosValidator { diff --git a/src/main/java/com/gatomalvado/eventbus/Broker.java b/src/main/java/com/gatomalvado/done/eventbus/Broker.java similarity index 97% rename from src/main/java/com/gatomalvado/eventbus/Broker.java rename to src/main/java/com/gatomalvado/done/eventbus/Broker.java index ebfc787..8f7a0a6 100644 --- a/src/main/java/com/gatomalvado/eventbus/Broker.java +++ b/src/main/java/com/gatomalvado/done/eventbus/Broker.java @@ -1,4 +1,4 @@ -package com.gatomalvado.eventbus; +package com.gatomalvado.done.eventbus; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; diff --git a/src/main/java/com/gatomalvado/eventbus/Consumer.java b/src/main/java/com/gatomalvado/done/eventbus/Consumer.java similarity index 96% rename from src/main/java/com/gatomalvado/eventbus/Consumer.java rename to src/main/java/com/gatomalvado/done/eventbus/Consumer.java index 4acaa61..0ef58a6 100644 --- a/src/main/java/com/gatomalvado/eventbus/Consumer.java +++ b/src/main/java/com/gatomalvado/done/eventbus/Consumer.java @@ -1,4 +1,4 @@ -package com.gatomalvado.eventbus; +package com.gatomalvado.done.eventbus; public class Consumer { diff --git a/src/main/java/com/gatomalvado/eventbus/Main.java b/src/main/java/com/gatomalvado/done/eventbus/Main.java similarity index 99% rename from src/main/java/com/gatomalvado/eventbus/Main.java rename to src/main/java/com/gatomalvado/done/eventbus/Main.java index f636bc3..e10c267 100644 --- a/src/main/java/com/gatomalvado/eventbus/Main.java +++ b/src/main/java/com/gatomalvado/done/eventbus/Main.java @@ -1,4 +1,4 @@ -package com.gatomalvado.eventbus; +package com.gatomalvado.done.eventbus; public class Main { diff --git a/src/main/java/com/gatomalvado/eventbus/Producer.java b/src/main/java/com/gatomalvado/done/eventbus/Producer.java similarity index 93% rename from src/main/java/com/gatomalvado/eventbus/Producer.java rename to src/main/java/com/gatomalvado/done/eventbus/Producer.java index db7b6fa..afb26c1 100644 --- a/src/main/java/com/gatomalvado/eventbus/Producer.java +++ b/src/main/java/com/gatomalvado/done/eventbus/Producer.java @@ -1,4 +1,4 @@ -package com.gatomalvado.eventbus; +package com.gatomalvado.done.eventbus; public class Producer { diff --git a/src/main/java/com/gatomalvado/done/eventbus/README.md b/src/main/java/com/gatomalvado/done/eventbus/README.md new file mode 100644 index 0000000..d2402c0 --- /dev/null +++ b/src/main/java/com/gatomalvado/done/eventbus/README.md @@ -0,0 +1,24 @@ +Problem Statement +Design an In-Memory Distributed Queue like Kafka. + +Requirements +The queue should be in-memory and should not require access to the file system. +There can be multiple topics in the queue. +A (string) message can be published on a topic by a producer/publisher and consumers/subscribers can subscribe to the topic to receive the messages. +There can be multiple producers and consumers. +A producer can publish to multiple topics. +A consumer can listen to multiple topics. +The consumer should print " received " on receiving the message. +The queue system should be multi-threaded, i.e., messages can be produced or consumed in parallel by different producers/consumers. +Input/Output Format +You do not need to take input from the command-line. +Create 2 topics: topic1 and topic2 +Create 2 producers: producer1, and producer2 +Create 5 consumers: consumer1, consumer2, consumer3, consumer4, and consumer5 +Make all 5 consumers subscribe to topic1 +Make consumers 1, 3, and 4 subscribe to topic2 +Make producer1 publish message "Message 1" to topic1 +Make producer1 publish message "Message 2" to topic1 +Make producer2 publish message "Message 3" to topic1 +Make producer1 publish message "Message 4" to topic2 +Make producer2 publish message "Message 5" to topic2 \ No newline at end of file diff --git a/src/main/java/com/gatomalvado/eventbus/Topic.java b/src/main/java/com/gatomalvado/done/eventbus/Topic.java similarity index 95% rename from src/main/java/com/gatomalvado/eventbus/Topic.java rename to src/main/java/com/gatomalvado/done/eventbus/Topic.java index b160bd4..64756dc 100644 --- a/src/main/java/com/gatomalvado/eventbus/Topic.java +++ b/src/main/java/com/gatomalvado/done/eventbus/Topic.java @@ -1,6 +1,5 @@ -package com.gatomalvado.eventbus; +package com.gatomalvado.done.eventbus; -import java.util.ArrayList; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicBoolean; diff --git a/src/main/java/com/gatomalvado/libmgmt/Main.java b/src/main/java/com/gatomalvado/done/libmgmt/Main.java similarity index 92% rename from src/main/java/com/gatomalvado/libmgmt/Main.java rename to src/main/java/com/gatomalvado/done/libmgmt/Main.java index dd07831..383f09c 100644 --- a/src/main/java/com/gatomalvado/libmgmt/Main.java +++ b/src/main/java/com/gatomalvado/done/libmgmt/Main.java @@ -1,4 +1,4 @@ -package com.gatomalvado.libmgmt; +package com.gatomalvado.done.libmgmt; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -8,12 +8,12 @@ import java.util.List; import java.util.Scanner; -import com.gatomalvado.libmgmt.model.Library; -import com.gatomalvado.libmgmt.model.request.BorrowBookRequest; -import com.gatomalvado.libmgmt.model.request.CreateBookDetails; -import com.gatomalvado.libmgmt.model.request.ReturnRequest; -import com.gatomalvado.libmgmt.model.request.SearchRequest; -import com.gatomalvado.libmgmt.orchestrator.LibraryManager; +import com.gatomalvado.done.libmgmt.model.Library; +import com.gatomalvado.done.libmgmt.model.request.BorrowBookRequest; +import com.gatomalvado.done.libmgmt.model.request.CreateBookDetails; +import com.gatomalvado.done.libmgmt.model.request.ReturnRequest; +import com.gatomalvado.done.libmgmt.model.request.SearchRequest; +import com.gatomalvado.done.libmgmt.orchestrator.LibraryManager; public class Main { private static LibraryManager libraryManager; diff --git a/src/main/java/com/gatomalvado/libmgmt/READMe.md b/src/main/java/com/gatomalvado/done/libmgmt/READMe.md similarity index 100% rename from src/main/java/com/gatomalvado/libmgmt/READMe.md rename to src/main/java/com/gatomalvado/done/libmgmt/READMe.md diff --git a/src/main/java/com/gatomalvado/libmgmt/model/Book.java b/src/main/java/com/gatomalvado/done/libmgmt/model/Book.java similarity index 88% rename from src/main/java/com/gatomalvado/libmgmt/model/Book.java rename to src/main/java/com/gatomalvado/done/libmgmt/model/Book.java index 685a8ca..de0bb60 100644 --- a/src/main/java/com/gatomalvado/libmgmt/model/Book.java +++ b/src/main/java/com/gatomalvado/done/libmgmt/model/Book.java @@ -1,4 +1,4 @@ -package com.gatomalvado.libmgmt.model; +package com.gatomalvado.done.libmgmt.model; import java.util.List; diff --git a/src/main/java/com/gatomalvado/libmgmt/model/BookCopy.java b/src/main/java/com/gatomalvado/done/libmgmt/model/BookCopy.java similarity index 89% rename from src/main/java/com/gatomalvado/libmgmt/model/BookCopy.java rename to src/main/java/com/gatomalvado/done/libmgmt/model/BookCopy.java index a51d506..bbc2d33 100644 --- a/src/main/java/com/gatomalvado/libmgmt/model/BookCopy.java +++ b/src/main/java/com/gatomalvado/done/libmgmt/model/BookCopy.java @@ -1,4 +1,4 @@ -package com.gatomalvado.libmgmt.model; +package com.gatomalvado.done.libmgmt.model; import java.util.Date; diff --git a/src/main/java/com/gatomalvado/libmgmt/model/LibUser.java b/src/main/java/com/gatomalvado/done/libmgmt/model/LibUser.java similarity index 84% rename from src/main/java/com/gatomalvado/libmgmt/model/LibUser.java rename to src/main/java/com/gatomalvado/done/libmgmt/model/LibUser.java index 29f318e..e07ac64 100644 --- a/src/main/java/com/gatomalvado/libmgmt/model/LibUser.java +++ b/src/main/java/com/gatomalvado/done/libmgmt/model/LibUser.java @@ -1,4 +1,4 @@ -package com.gatomalvado.libmgmt.model; +package com.gatomalvado.done.libmgmt.model; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/src/main/java/com/gatomalvado/libmgmt/model/Library.java b/src/main/java/com/gatomalvado/done/libmgmt/model/Library.java similarity index 83% rename from src/main/java/com/gatomalvado/libmgmt/model/Library.java rename to src/main/java/com/gatomalvado/done/libmgmt/model/Library.java index d6b3ced..5b9384c 100644 --- a/src/main/java/com/gatomalvado/libmgmt/model/Library.java +++ b/src/main/java/com/gatomalvado/done/libmgmt/model/Library.java @@ -1,4 +1,4 @@ -package com.gatomalvado.libmgmt.model; +package com.gatomalvado.done.libmgmt.model; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/src/main/java/com/gatomalvado/libmgmt/model/request/BorrowBookRequest.java b/src/main/java/com/gatomalvado/done/libmgmt/model/request/BorrowBookRequest.java similarity index 82% rename from src/main/java/com/gatomalvado/libmgmt/model/request/BorrowBookRequest.java rename to src/main/java/com/gatomalvado/done/libmgmt/model/request/BorrowBookRequest.java index 05aaf07..c04b633 100644 --- a/src/main/java/com/gatomalvado/libmgmt/model/request/BorrowBookRequest.java +++ b/src/main/java/com/gatomalvado/done/libmgmt/model/request/BorrowBookRequest.java @@ -1,4 +1,4 @@ -package com.gatomalvado.libmgmt.model.request; +package com.gatomalvado.done.libmgmt.model.request; import java.util.Date; diff --git a/src/main/java/com/gatomalvado/libmgmt/model/request/CreateBookDetails.java b/src/main/java/com/gatomalvado/done/libmgmt/model/request/CreateBookDetails.java similarity index 80% rename from src/main/java/com/gatomalvado/libmgmt/model/request/CreateBookDetails.java rename to src/main/java/com/gatomalvado/done/libmgmt/model/request/CreateBookDetails.java index 507f87b..2bec082 100644 --- a/src/main/java/com/gatomalvado/libmgmt/model/request/CreateBookDetails.java +++ b/src/main/java/com/gatomalvado/done/libmgmt/model/request/CreateBookDetails.java @@ -1,9 +1,7 @@ -package com.gatomalvado.libmgmt.model.request; +package com.gatomalvado.done.libmgmt.model.request; import java.util.List; -import com.gatomalvado.libmgmt.model.Book; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/com/gatomalvado/libmgmt/model/request/ReturnRequest.java b/src/main/java/com/gatomalvado/done/libmgmt/model/request/ReturnRequest.java similarity index 73% rename from src/main/java/com/gatomalvado/libmgmt/model/request/ReturnRequest.java rename to src/main/java/com/gatomalvado/done/libmgmt/model/request/ReturnRequest.java index 5ee11e4..e0b5e62 100644 --- a/src/main/java/com/gatomalvado/libmgmt/model/request/ReturnRequest.java +++ b/src/main/java/com/gatomalvado/done/libmgmt/model/request/ReturnRequest.java @@ -1,4 +1,4 @@ -package com.gatomalvado.libmgmt.model.request; +package com.gatomalvado.done.libmgmt.model.request; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/com/gatomalvado/libmgmt/model/request/SearchRequest.java b/src/main/java/com/gatomalvado/done/libmgmt/model/request/SearchRequest.java similarity index 79% rename from src/main/java/com/gatomalvado/libmgmt/model/request/SearchRequest.java rename to src/main/java/com/gatomalvado/done/libmgmt/model/request/SearchRequest.java index 6ba036b..1313440 100644 --- a/src/main/java/com/gatomalvado/libmgmt/model/request/SearchRequest.java +++ b/src/main/java/com/gatomalvado/done/libmgmt/model/request/SearchRequest.java @@ -1,4 +1,4 @@ -package com.gatomalvado.libmgmt.model.request; +package com.gatomalvado.done.libmgmt.model.request; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/src/main/java/com/gatomalvado/libmgmt/orchestrator/LibraryManager.java b/src/main/java/com/gatomalvado/done/libmgmt/orchestrator/LibraryManager.java similarity index 95% rename from src/main/java/com/gatomalvado/libmgmt/orchestrator/LibraryManager.java rename to src/main/java/com/gatomalvado/done/libmgmt/orchestrator/LibraryManager.java index ebb03a0..7572291 100644 --- a/src/main/java/com/gatomalvado/libmgmt/orchestrator/LibraryManager.java +++ b/src/main/java/com/gatomalvado/done/libmgmt/orchestrator/LibraryManager.java @@ -1,4 +1,4 @@ -package com.gatomalvado.libmgmt.orchestrator; +package com.gatomalvado.done.libmgmt.orchestrator; import java.util.ArrayList; import java.util.List; @@ -9,13 +9,13 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; -import com.gatomalvado.libmgmt.model.Book; -import com.gatomalvado.libmgmt.model.BookCopy; -import com.gatomalvado.libmgmt.model.LibUser; -import com.gatomalvado.libmgmt.model.request.CreateBookDetails; -import com.gatomalvado.libmgmt.model.request.BorrowBookRequest; -import com.gatomalvado.libmgmt.model.request.ReturnRequest; -import com.gatomalvado.libmgmt.model.request.SearchRequest; +import com.gatomalvado.done.libmgmt.model.Book; +import com.gatomalvado.done.libmgmt.model.BookCopy; +import com.gatomalvado.done.libmgmt.model.LibUser; +import com.gatomalvado.done.libmgmt.model.request.BorrowBookRequest; +import com.gatomalvado.done.libmgmt.model.request.CreateBookDetails; +import com.gatomalvado.done.libmgmt.model.request.ReturnRequest; +import com.gatomalvado.done.libmgmt.model.request.SearchRequest; public class LibraryManager { diff --git a/src/main/java/com/gatomalvado/ridesharing/ConstantConfig.java b/src/main/java/com/gatomalvado/done/ridesharing/ConstantConfig.java similarity index 93% rename from src/main/java/com/gatomalvado/ridesharing/ConstantConfig.java rename to src/main/java/com/gatomalvado/done/ridesharing/ConstantConfig.java index b6e95cc..f97b717 100644 --- a/src/main/java/com/gatomalvado/ridesharing/ConstantConfig.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/ConstantConfig.java @@ -1,4 +1,4 @@ -package com.gatomalvado.ridesharing; +package com.gatomalvado.done.ridesharing; public class ConstantConfig { public static double amountCharged = 20.0; diff --git a/src/main/java/com/gatomalvado/ridesharing/Main.java b/src/main/java/com/gatomalvado/done/ridesharing/Main.java similarity index 68% rename from src/main/java/com/gatomalvado/ridesharing/Main.java rename to src/main/java/com/gatomalvado/done/ridesharing/Main.java index 0e80d74..d45b3ff 100644 --- a/src/main/java/com/gatomalvado/ridesharing/Main.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/Main.java @@ -1,13 +1,9 @@ -package com.gatomalvado.ridesharing; +package com.gatomalvado.done.ridesharing; -import java.sql.DriverManager; - -import com.gatomalvado.ridesharing.model.BookedRide; -import com.gatomalvado.ridesharing.model.Driver; -import com.gatomalvado.ridesharing.model.Rider; -import com.gatomalvado.ridesharing.model.enums.UserType; -import com.gatomalvado.ridesharing.orchestrator.RideManager; -import com.gatomalvado.ridesharing.strategy.CostCalculatorFactory; +import com.gatomalvado.done.ridesharing.model.Driver; +import com.gatomalvado.done.ridesharing.model.Rider; +import com.gatomalvado.done.ridesharing.orchestrator.RideManager; +import com.gatomalvado.done.ridesharing.strategy.CostCalculatorFactory; public class Main { public static void main(String[] args){ diff --git a/src/main/java/com/gatomalvado/ridesharing/README.md b/src/main/java/com/gatomalvado/done/ridesharing/README.md similarity index 100% rename from src/main/java/com/gatomalvado/ridesharing/README.md rename to src/main/java/com/gatomalvado/done/ridesharing/README.md diff --git a/src/main/java/com/gatomalvado/ridesharing/exception/InvalidInputException.java b/src/main/java/com/gatomalvado/done/ridesharing/exception/InvalidInputException.java similarity index 73% rename from src/main/java/com/gatomalvado/ridesharing/exception/InvalidInputException.java rename to src/main/java/com/gatomalvado/done/ridesharing/exception/InvalidInputException.java index 7f1da83..cfeaa08 100644 --- a/src/main/java/com/gatomalvado/ridesharing/exception/InvalidInputException.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/exception/InvalidInputException.java @@ -1,4 +1,4 @@ -package com.gatomalvado.ridesharing.exception; +package com.gatomalvado.done.ridesharing.exception; public class InvalidInputException extends RuntimeException { diff --git a/src/main/java/com/gatomalvado/ridesharing/model/BookedRide.java b/src/main/java/com/gatomalvado/done/ridesharing/model/BookedRide.java similarity index 84% rename from src/main/java/com/gatomalvado/ridesharing/model/BookedRide.java rename to src/main/java/com/gatomalvado/done/ridesharing/model/BookedRide.java index 330e51b..2a394f6 100644 --- a/src/main/java/com/gatomalvado/ridesharing/model/BookedRide.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/model/BookedRide.java @@ -1,8 +1,8 @@ -package com.gatomalvado.ridesharing.model; +package com.gatomalvado.done.ridesharing.model; import java.util.UUID; -import com.gatomalvado.ridesharing.model.enums.RideStatus; +import com.gatomalvado.done.ridesharing.model.enums.RideStatus; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/com/gatomalvado/ridesharing/model/Driver.java b/src/main/java/com/gatomalvado/done/ridesharing/model/Driver.java similarity index 69% rename from src/main/java/com/gatomalvado/ridesharing/model/Driver.java rename to src/main/java/com/gatomalvado/done/ridesharing/model/Driver.java index b58aeb0..0870e4e 100644 --- a/src/main/java/com/gatomalvado/ridesharing/model/Driver.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/model/Driver.java @@ -1,16 +1,15 @@ -package com.gatomalvado.ridesharing.model; +package com.gatomalvado.done.ridesharing.model; -import com.gatomalvado.ridesharing.model.enums.UserType; +import com.gatomalvado.done.ridesharing.model.enums.UserType; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; @Data @AllArgsConstructor @EqualsAndHashCode(callSuper = true) -public class Driver extends UserDetails{ +public class Driver extends UserDetails { private UserType userType; private Boolean isFree; diff --git a/src/main/java/com/gatomalvado/ridesharing/model/Ride.java b/src/main/java/com/gatomalvado/done/ridesharing/model/Ride.java similarity index 83% rename from src/main/java/com/gatomalvado/ridesharing/model/Ride.java rename to src/main/java/com/gatomalvado/done/ridesharing/model/Ride.java index 9a23a07..59796a2 100644 --- a/src/main/java/com/gatomalvado/ridesharing/model/Ride.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/model/Ride.java @@ -1,4 +1,4 @@ -package com.gatomalvado.ridesharing.model; +package com.gatomalvado.done.ridesharing.model; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/com/gatomalvado/ridesharing/model/Rider.java b/src/main/java/com/gatomalvado/done/ridesharing/model/Rider.java similarity index 75% rename from src/main/java/com/gatomalvado/ridesharing/model/Rider.java rename to src/main/java/com/gatomalvado/done/ridesharing/model/Rider.java index e02e982..5bf4bbd 100644 --- a/src/main/java/com/gatomalvado/ridesharing/model/Rider.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/model/Rider.java @@ -1,11 +1,10 @@ -package com.gatomalvado.ridesharing.model; +package com.gatomalvado.done.ridesharing.model; -import com.gatomalvado.ridesharing.model.enums.UserType; +import com.gatomalvado.done.ridesharing.model.enums.UserType; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; @EqualsAndHashCode(callSuper = true) @AllArgsConstructor diff --git a/src/main/java/com/gatomalvado/ridesharing/model/UserDetails.java b/src/main/java/com/gatomalvado/done/ridesharing/model/UserDetails.java similarity index 83% rename from src/main/java/com/gatomalvado/ridesharing/model/UserDetails.java rename to src/main/java/com/gatomalvado/done/ridesharing/model/UserDetails.java index da01474..7da7884 100644 --- a/src/main/java/com/gatomalvado/ridesharing/model/UserDetails.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/model/UserDetails.java @@ -1,4 +1,4 @@ -package com.gatomalvado.ridesharing.model; +package com.gatomalvado.done.ridesharing.model; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/com/gatomalvado/ridesharing/model/enums/RideStatus.java b/src/main/java/com/gatomalvado/done/ridesharing/model/enums/RideStatus.java similarity index 80% rename from src/main/java/com/gatomalvado/ridesharing/model/enums/RideStatus.java rename to src/main/java/com/gatomalvado/done/ridesharing/model/enums/RideStatus.java index a780b7c..63036ec 100644 --- a/src/main/java/com/gatomalvado/ridesharing/model/enums/RideStatus.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/model/enums/RideStatus.java @@ -1,4 +1,4 @@ -package com.gatomalvado.ridesharing.model.enums; +package com.gatomalvado.done.ridesharing.model.enums; import lombok.Getter; diff --git a/src/main/java/com/gatomalvado/ridesharing/model/enums/UserType.java b/src/main/java/com/gatomalvado/done/ridesharing/model/enums/UserType.java similarity index 77% rename from src/main/java/com/gatomalvado/ridesharing/model/enums/UserType.java rename to src/main/java/com/gatomalvado/done/ridesharing/model/enums/UserType.java index 2d86253..17b74f7 100644 --- a/src/main/java/com/gatomalvado/ridesharing/model/enums/UserType.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/model/enums/UserType.java @@ -1,4 +1,4 @@ -package com.gatomalvado.ridesharing.model.enums; +package com.gatomalvado.done.ridesharing.model.enums; import lombok.Getter; diff --git a/src/main/java/com/gatomalvado/ridesharing/orchestrator/RideManager.java b/src/main/java/com/gatomalvado/done/ridesharing/orchestrator/RideManager.java similarity index 82% rename from src/main/java/com/gatomalvado/ridesharing/orchestrator/RideManager.java rename to src/main/java/com/gatomalvado/done/ridesharing/orchestrator/RideManager.java index 432f55a..1a20c15 100644 --- a/src/main/java/com/gatomalvado/ridesharing/orchestrator/RideManager.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/orchestrator/RideManager.java @@ -1,25 +1,20 @@ -package com.gatomalvado.ridesharing.orchestrator; +package com.gatomalvado.done.ridesharing.orchestrator; -import static com.gatomalvado.ridesharing.ConstantConfig.MSG_CODE1; -import static com.gatomalvado.ridesharing.ConstantConfig.MSG_CODE2; -import static com.gatomalvado.ridesharing.ConstantConfig.MSG_CODE3; -import static com.gatomalvado.ridesharing.ConstantConfig.MSG_CODE4; -import static com.gatomalvado.ridesharing.ConstantConfig.MSG_CODE5; -import java.awt.print.Book; +import static com.gatomalvado.done.ridesharing.ConstantConfig.*; + import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import com.gatomalvado.ridesharing.exception.InvalidInputException; -import com.gatomalvado.ridesharing.model.BookedRide; -import com.gatomalvado.ridesharing.model.Driver; -import com.gatomalvado.ridesharing.model.Ride; -import com.gatomalvado.ridesharing.model.Rider; -import com.gatomalvado.ridesharing.model.enums.RideStatus; -import com.gatomalvado.ridesharing.strategy.CostCalculator; -import com.gatomalvado.ridesharing.strategy.CostCalculatorFactory; +import com.gatomalvado.done.ridesharing.exception.InvalidInputException; +import com.gatomalvado.done.ridesharing.model.BookedRide; +import com.gatomalvado.done.ridesharing.model.Driver; +import com.gatomalvado.done.ridesharing.model.Ride; +import com.gatomalvado.done.ridesharing.model.Rider; +import com.gatomalvado.done.ridesharing.model.enums.RideStatus; +import com.gatomalvado.done.ridesharing.strategy.CostCalculator; +import com.gatomalvado.done.ridesharing.strategy.CostCalculatorFactory; public class RideManager { @@ -76,7 +71,7 @@ public BookedRide updateRide(String id, double destination, double origin, int n // validate ride validateUpdateRideInput(id, destination, origin, noOfSeats); - BookedRide bookedRide = this.bookedRideMap.get(id); + BookedRide bookedRide = this.bookedRideMap.get(id); Ride rideDetails = new Ride(origin, destination, noOfSeats); diff --git a/src/main/java/com/gatomalvado/ridesharing/strategy/CostCalculator.java b/src/main/java/com/gatomalvado/done/ridesharing/strategy/CostCalculator.java similarity index 57% rename from src/main/java/com/gatomalvado/ridesharing/strategy/CostCalculator.java rename to src/main/java/com/gatomalvado/done/ridesharing/strategy/CostCalculator.java index aa489ef..a61f92d 100644 --- a/src/main/java/com/gatomalvado/ridesharing/strategy/CostCalculator.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/strategy/CostCalculator.java @@ -1,6 +1,6 @@ -package com.gatomalvado.ridesharing.strategy; +package com.gatomalvado.done.ridesharing.strategy; -import com.gatomalvado.ridesharing.model.BookedRide; +import com.gatomalvado.done.ridesharing.model.BookedRide; public interface CostCalculator { double calculateRideCost(BookedRide bookedRide); diff --git a/src/main/java/com/gatomalvado/ridesharing/strategy/CostCalculatorFactory.java b/src/main/java/com/gatomalvado/done/ridesharing/strategy/CostCalculatorFactory.java similarity index 62% rename from src/main/java/com/gatomalvado/ridesharing/strategy/CostCalculatorFactory.java rename to src/main/java/com/gatomalvado/done/ridesharing/strategy/CostCalculatorFactory.java index fbb73d5..49c3a8b 100644 --- a/src/main/java/com/gatomalvado/ridesharing/strategy/CostCalculatorFactory.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/strategy/CostCalculatorFactory.java @@ -1,9 +1,9 @@ -package com.gatomalvado.ridesharing.strategy; +package com.gatomalvado.done.ridesharing.strategy; -import com.gatomalvado.ridesharing.model.BookedRide; -import com.gatomalvado.ridesharing.strategy.impl.PreferredRiderCostCalculator; -import com.gatomalvado.ridesharing.strategy.impl.SingleSeatRideCalculator; -import com.gatomalvado.ridesharing.strategy.impl.TwoSeatRiderCalculator; +import com.gatomalvado.done.ridesharing.model.BookedRide; +import com.gatomalvado.done.ridesharing.strategy.impl.PreferredRiderCostCalculator; +import com.gatomalvado.done.ridesharing.strategy.impl.SingleSeatRideCalculator; +import com.gatomalvado.done.ridesharing.strategy.impl.TwoSeatRiderCalculator; public class CostCalculatorFactory { diff --git a/src/main/java/com/gatomalvado/ridesharing/strategy/impl/PreferredRiderCostCalculator.java b/src/main/java/com/gatomalvado/done/ridesharing/strategy/impl/PreferredRiderCostCalculator.java similarity index 80% rename from src/main/java/com/gatomalvado/ridesharing/strategy/impl/PreferredRiderCostCalculator.java rename to src/main/java/com/gatomalvado/done/ridesharing/strategy/impl/PreferredRiderCostCalculator.java index b4afa2f..d11ed9a 100644 --- a/src/main/java/com/gatomalvado/ridesharing/strategy/impl/PreferredRiderCostCalculator.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/strategy/impl/PreferredRiderCostCalculator.java @@ -1,7 +1,7 @@ -package com.gatomalvado.ridesharing.strategy.impl; +package com.gatomalvado.done.ridesharing.strategy.impl; -import com.gatomalvado.ridesharing.model.BookedRide; -import com.gatomalvado.ridesharing.strategy.CostCalculator; +import com.gatomalvado.done.ridesharing.model.BookedRide; +import com.gatomalvado.done.ridesharing.strategy.CostCalculator; public class PreferredRiderCostCalculator implements CostCalculator { diff --git a/src/main/java/com/gatomalvado/ridesharing/strategy/impl/SingleSeatRideCalculator.java b/src/main/java/com/gatomalvado/done/ridesharing/strategy/impl/SingleSeatRideCalculator.java similarity index 76% rename from src/main/java/com/gatomalvado/ridesharing/strategy/impl/SingleSeatRideCalculator.java rename to src/main/java/com/gatomalvado/done/ridesharing/strategy/impl/SingleSeatRideCalculator.java index cefbcb7..93aecb9 100644 --- a/src/main/java/com/gatomalvado/ridesharing/strategy/impl/SingleSeatRideCalculator.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/strategy/impl/SingleSeatRideCalculator.java @@ -1,8 +1,8 @@ -package com.gatomalvado.ridesharing.strategy.impl; +package com.gatomalvado.done.ridesharing.strategy.impl; -import com.gatomalvado.ridesharing.ConstantConfig; -import com.gatomalvado.ridesharing.model.BookedRide; -import com.gatomalvado.ridesharing.strategy.CostCalculator; +import com.gatomalvado.done.ridesharing.ConstantConfig; +import com.gatomalvado.done.ridesharing.model.BookedRide; +import com.gatomalvado.done.ridesharing.strategy.CostCalculator; public class SingleSeatRideCalculator implements CostCalculator { diff --git a/src/main/java/com/gatomalvado/ridesharing/strategy/impl/TwoSeatRiderCalculator.java b/src/main/java/com/gatomalvado/done/ridesharing/strategy/impl/TwoSeatRiderCalculator.java similarity index 77% rename from src/main/java/com/gatomalvado/ridesharing/strategy/impl/TwoSeatRiderCalculator.java rename to src/main/java/com/gatomalvado/done/ridesharing/strategy/impl/TwoSeatRiderCalculator.java index a583c97..4305e91 100644 --- a/src/main/java/com/gatomalvado/ridesharing/strategy/impl/TwoSeatRiderCalculator.java +++ b/src/main/java/com/gatomalvado/done/ridesharing/strategy/impl/TwoSeatRiderCalculator.java @@ -1,8 +1,8 @@ -package com.gatomalvado.ridesharing.strategy.impl; +package com.gatomalvado.done.ridesharing.strategy.impl; -import com.gatomalvado.ridesharing.ConstantConfig; -import com.gatomalvado.ridesharing.model.BookedRide; -import com.gatomalvado.ridesharing.strategy.CostCalculator; +import com.gatomalvado.done.ridesharing.ConstantConfig; +import com.gatomalvado.done.ridesharing.model.BookedRide; +import com.gatomalvado.done.ridesharing.strategy.CostCalculator; public class TwoSeatRiderCalculator implements CostCalculator { diff --git a/src/main/java/com/gatomalvado/snakesandladders/Main.java b/src/main/java/com/gatomalvado/done/snakesandladders/Main.java similarity index 52% rename from src/main/java/com/gatomalvado/snakesandladders/Main.java rename to src/main/java/com/gatomalvado/done/snakesandladders/Main.java index d83c786..0e589cc 100644 --- a/src/main/java/com/gatomalvado/snakesandladders/Main.java +++ b/src/main/java/com/gatomalvado/done/snakesandladders/Main.java @@ -1,15 +1,6 @@ -package com.gatomalvado.snakesandladders; +package com.gatomalvado.done.snakesandladders; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Scanner; -import java.util.Set; - -import com.gatomalvado.snakesandladders.model.Ladder; -import com.gatomalvado.snakesandladders.model.Player; -import com.gatomalvado.snakesandladders.model.Snake; -import com.gatomalvado.snakesandladders.orchestrator.GameOrchestrator; +import com.gatomalvado.done.snakesandladders.orchestrator.GameOrchestrator; public class Main { diff --git a/src/main/java/com/gatomalvado/snakesandladders/README.md b/src/main/java/com/gatomalvado/done/snakesandladders/README.md similarity index 100% rename from src/main/java/com/gatomalvado/snakesandladders/README.md rename to src/main/java/com/gatomalvado/done/snakesandladders/README.md diff --git a/src/main/java/com/gatomalvado/snakesandladders/model/Entity.java b/src/main/java/com/gatomalvado/done/snakesandladders/model/Entity.java similarity index 64% rename from src/main/java/com/gatomalvado/snakesandladders/model/Entity.java rename to src/main/java/com/gatomalvado/done/snakesandladders/model/Entity.java index 19f8a3d..9e78adb 100644 --- a/src/main/java/com/gatomalvado/snakesandladders/model/Entity.java +++ b/src/main/java/com/gatomalvado/done/snakesandladders/model/Entity.java @@ -1,6 +1,6 @@ -package com.gatomalvado.snakesandladders.model; +package com.gatomalvado.done.snakesandladders.model; -import com.gatomalvado.snakesandladders.model.enums.EntityType; +import com.gatomalvado.done.snakesandladders.model.enums.EntityType; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/gatomalvado/done/snakesandladders/model/Ladder.java b/src/main/java/com/gatomalvado/done/snakesandladders/model/Ladder.java new file mode 100644 index 0000000..5a330f1 --- /dev/null +++ b/src/main/java/com/gatomalvado/done/snakesandladders/model/Ladder.java @@ -0,0 +1,13 @@ +package com.gatomalvado.done.snakesandladders.model; + +import com.gatomalvado.done.snakesandladders.model.enums.EntityType; + +import lombok.Getter; + +@Getter +public class Ladder extends Entity { + + public Ladder(String id, int xPos, int yPos) { + super(id, xPos, yPos, EntityType.LADDER); + } +} diff --git a/src/main/java/com/gatomalvado/snakesandladders/model/Player.java b/src/main/java/com/gatomalvado/done/snakesandladders/model/Player.java similarity index 56% rename from src/main/java/com/gatomalvado/snakesandladders/model/Player.java rename to src/main/java/com/gatomalvado/done/snakesandladders/model/Player.java index 558d3ec..32b332c 100644 --- a/src/main/java/com/gatomalvado/snakesandladders/model/Player.java +++ b/src/main/java/com/gatomalvado/done/snakesandladders/model/Player.java @@ -1,11 +1,6 @@ -package com.gatomalvado.snakesandladders.model; +package com.gatomalvado.done.snakesandladders.model; -import com.gatomalvado.snakesandladders.model.enums.EntityType; - -import lombok.AllArgsConstructor; -import lombok.Data; import lombok.Getter; -import lombok.NoArgsConstructor; import lombok.Setter; @Getter diff --git a/src/main/java/com/gatomalvado/done/snakesandladders/model/Snake.java b/src/main/java/com/gatomalvado/done/snakesandladders/model/Snake.java new file mode 100644 index 0000000..9bd4ade --- /dev/null +++ b/src/main/java/com/gatomalvado/done/snakesandladders/model/Snake.java @@ -0,0 +1,13 @@ +package com.gatomalvado.done.snakesandladders.model; + +import com.gatomalvado.done.snakesandladders.model.enums.EntityType; + +import lombok.Getter; + +@Getter +public class Snake extends Entity { + + public Snake(String id, int xPos, int yPos) { + super(id, xPos, yPos, EntityType.SNAKE); + } +} diff --git a/src/main/java/com/gatomalvado/snakesandladders/model/enums/EntityType.java b/src/main/java/com/gatomalvado/done/snakesandladders/model/enums/EntityType.java similarity index 78% rename from src/main/java/com/gatomalvado/snakesandladders/model/enums/EntityType.java rename to src/main/java/com/gatomalvado/done/snakesandladders/model/enums/EntityType.java index d82b030..9a474ce 100644 --- a/src/main/java/com/gatomalvado/snakesandladders/model/enums/EntityType.java +++ b/src/main/java/com/gatomalvado/done/snakesandladders/model/enums/EntityType.java @@ -1,4 +1,4 @@ -package com.gatomalvado.snakesandladders.model.enums; +package com.gatomalvado.done.snakesandladders.model.enums; import lombok.Getter; diff --git a/src/main/java/com/gatomalvado/snakesandladders/orchestrator/GameOrchestrator.java b/src/main/java/com/gatomalvado/done/snakesandladders/orchestrator/GameOrchestrator.java similarity index 86% rename from src/main/java/com/gatomalvado/snakesandladders/orchestrator/GameOrchestrator.java rename to src/main/java/com/gatomalvado/done/snakesandladders/orchestrator/GameOrchestrator.java index bc6e16e..d4beed1 100644 --- a/src/main/java/com/gatomalvado/snakesandladders/orchestrator/GameOrchestrator.java +++ b/src/main/java/com/gatomalvado/done/snakesandladders/orchestrator/GameOrchestrator.java @@ -1,16 +1,16 @@ -package com.gatomalvado.snakesandladders.orchestrator; +package com.gatomalvado.done.snakesandladders.orchestrator; import java.util.List; import java.util.Optional; import java.util.Queue; -import com.gatomalvado.snakesandladders.model.Ladder; -import com.gatomalvado.snakesandladders.model.Player; -import com.gatomalvado.snakesandladders.model.Snake; -import com.gatomalvado.snakesandladders.service.BoardFactory; -import com.gatomalvado.snakesandladders.service.BoardGenerator; -import com.gatomalvado.snakesandladders.service.NextPositionStrategy; -import com.gatomalvado.snakesandladders.service.WinnerDeciderStrategy; +import com.gatomalvado.done.snakesandladders.model.Ladder; +import com.gatomalvado.done.snakesandladders.model.Player; +import com.gatomalvado.done.snakesandladders.model.Snake; +import com.gatomalvado.done.snakesandladders.service.BoardFactory; +import com.gatomalvado.done.snakesandladders.service.BoardGenerator; +import com.gatomalvado.done.snakesandladders.service.NextPositionStrategy; +import com.gatomalvado.done.snakesandladders.service.WinnerDeciderStrategy; public class GameOrchestrator { diff --git a/src/main/java/com/gatomalvado/snakesandladders/service/BoardFactory.java b/src/main/java/com/gatomalvado/done/snakesandladders/service/BoardFactory.java similarity index 93% rename from src/main/java/com/gatomalvado/snakesandladders/service/BoardFactory.java rename to src/main/java/com/gatomalvado/done/snakesandladders/service/BoardFactory.java index b089143..039dc85 100644 --- a/src/main/java/com/gatomalvado/snakesandladders/service/BoardFactory.java +++ b/src/main/java/com/gatomalvado/done/snakesandladders/service/BoardFactory.java @@ -1,8 +1,6 @@ -package com.gatomalvado.snakesandladders.service; +package com.gatomalvado.done.snakesandladders.service; -import java.util.concurrent.atomic.AtomicInteger; - import lombok.Getter; @Getter diff --git a/src/main/java/com/gatomalvado/done/snakesandladders/service/BoardGenerator.java b/src/main/java/com/gatomalvado/done/snakesandladders/service/BoardGenerator.java new file mode 100644 index 0000000..7da3ff5 --- /dev/null +++ b/src/main/java/com/gatomalvado/done/snakesandladders/service/BoardGenerator.java @@ -0,0 +1,18 @@ +package com.gatomalvado.done.snakesandladders.service; + +import java.util.List; +import java.util.Queue; + +import com.gatomalvado.done.snakesandladders.model.Ladder; +import com.gatomalvado.done.snakesandladders.model.Player; +import com.gatomalvado.done.snakesandladders.model.Snake; + +public interface BoardGenerator{ + + Queue takePlayerInput(); + + List takeSnakeInput(); + + List takeLadderInput(); + +} diff --git a/src/main/java/com/gatomalvado/snakesandladders/service/ManualBoardGenerator.java b/src/main/java/com/gatomalvado/done/snakesandladders/service/ManualBoardGenerator.java similarity index 92% rename from src/main/java/com/gatomalvado/snakesandladders/service/ManualBoardGenerator.java rename to src/main/java/com/gatomalvado/done/snakesandladders/service/ManualBoardGenerator.java index dd08564..12802c3 100644 --- a/src/main/java/com/gatomalvado/snakesandladders/service/ManualBoardGenerator.java +++ b/src/main/java/com/gatomalvado/done/snakesandladders/service/ManualBoardGenerator.java @@ -1,4 +1,4 @@ -package com.gatomalvado.snakesandladders.service; +package com.gatomalvado.done.snakesandladders.service; import java.util.ArrayList; import java.util.HashSet; @@ -8,9 +8,9 @@ import java.util.Scanner; import java.util.Set; -import com.gatomalvado.snakesandladders.model.Ladder; -import com.gatomalvado.snakesandladders.model.Player; -import com.gatomalvado.snakesandladders.model.Snake; +import com.gatomalvado.done.snakesandladders.model.Ladder; +import com.gatomalvado.done.snakesandladders.model.Player; +import com.gatomalvado.done.snakesandladders.model.Snake; public class ManualBoardGenerator implements BoardGenerator { diff --git a/src/main/java/com/gatomalvado/snakesandladders/service/NextPositionStrategy.java b/src/main/java/com/gatomalvado/done/snakesandladders/service/NextPositionStrategy.java similarity index 53% rename from src/main/java/com/gatomalvado/snakesandladders/service/NextPositionStrategy.java rename to src/main/java/com/gatomalvado/done/snakesandladders/service/NextPositionStrategy.java index 3673766..543b302 100644 --- a/src/main/java/com/gatomalvado/snakesandladders/service/NextPositionStrategy.java +++ b/src/main/java/com/gatomalvado/done/snakesandladders/service/NextPositionStrategy.java @@ -1,4 +1,4 @@ -package com.gatomalvado.snakesandladders.service; +package com.gatomalvado.done.snakesandladders.service; public interface NextPositionStrategy { diff --git a/src/main/java/com/gatomalvado/snakesandladders/service/SingleDiceNextPositionStrategy.java b/src/main/java/com/gatomalvado/done/snakesandladders/service/SingleDiceNextPositionStrategy.java similarity index 82% rename from src/main/java/com/gatomalvado/snakesandladders/service/SingleDiceNextPositionStrategy.java rename to src/main/java/com/gatomalvado/done/snakesandladders/service/SingleDiceNextPositionStrategy.java index c2eadaa..a154500 100644 --- a/src/main/java/com/gatomalvado/snakesandladders/service/SingleDiceNextPositionStrategy.java +++ b/src/main/java/com/gatomalvado/done/snakesandladders/service/SingleDiceNextPositionStrategy.java @@ -1,4 +1,4 @@ -package com.gatomalvado.snakesandladders.service; +package com.gatomalvado.done.snakesandladders.service; import java.util.Random; import java.util.random.RandomGenerator; diff --git a/src/main/java/com/gatomalvado/snakesandladders/service/SingleWinnerStrategy.java b/src/main/java/com/gatomalvado/done/snakesandladders/service/SingleWinnerStrategy.java similarity index 77% rename from src/main/java/com/gatomalvado/snakesandladders/service/SingleWinnerStrategy.java rename to src/main/java/com/gatomalvado/done/snakesandladders/service/SingleWinnerStrategy.java index 5141961..a275273 100644 --- a/src/main/java/com/gatomalvado/snakesandladders/service/SingleWinnerStrategy.java +++ b/src/main/java/com/gatomalvado/done/snakesandladders/service/SingleWinnerStrategy.java @@ -1,10 +1,9 @@ -package com.gatomalvado.snakesandladders.service; +package com.gatomalvado.done.snakesandladders.service; import java.util.List; import java.util.Queue; -import java.util.stream.Collectors; -import com.gatomalvado.snakesandladders.model.Player; +import com.gatomalvado.done.snakesandladders.model.Player; public class SingleWinnerStrategy implements WinnerDeciderStrategy { diff --git a/src/main/java/com/gatomalvado/snakesandladders/service/WinnerDeciderStrategy.java b/src/main/java/com/gatomalvado/done/snakesandladders/service/WinnerDeciderStrategy.java similarity index 50% rename from src/main/java/com/gatomalvado/snakesandladders/service/WinnerDeciderStrategy.java rename to src/main/java/com/gatomalvado/done/snakesandladders/service/WinnerDeciderStrategy.java index 7474ade..eef6f22 100644 --- a/src/main/java/com/gatomalvado/snakesandladders/service/WinnerDeciderStrategy.java +++ b/src/main/java/com/gatomalvado/done/snakesandladders/service/WinnerDeciderStrategy.java @@ -1,9 +1,8 @@ -package com.gatomalvado.snakesandladders.service; +package com.gatomalvado.done.snakesandladders.service; -import java.util.List; import java.util.Queue; -import com.gatomalvado.snakesandladders.model.Player; +import com.gatomalvado.done.snakesandladders.model.Player; public interface WinnerDeciderStrategy { diff --git a/src/main/java/com/gatomalvado/splitwise/Main.java b/src/main/java/com/gatomalvado/done/splitwise/Main.java similarity index 92% rename from src/main/java/com/gatomalvado/splitwise/Main.java rename to src/main/java/com/gatomalvado/done/splitwise/Main.java index bc7038f..983b05d 100644 --- a/src/main/java/com/gatomalvado/splitwise/Main.java +++ b/src/main/java/com/gatomalvado/done/splitwise/Main.java @@ -1,17 +1,13 @@ -package com.gatomalvado.splitwise; +package com.gatomalvado.done.splitwise; import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; import java.util.List; import java.util.Scanner; -import java.util.Set; -import java.util.stream.Collectors; -import com.gatomalvado.splitwise.model.Expense; -import com.gatomalvado.splitwise.model.ExpenseType; -import com.gatomalvado.splitwise.model.User; -import com.gatomalvado.splitwise.orchestrator.ExpenseManager; +import com.gatomalvado.done.splitwise.model.Expense; +import com.gatomalvado.done.splitwise.model.ExpenseType; +import com.gatomalvado.done.splitwise.model.User; +import com.gatomalvado.done.splitwise.orchestrator.ExpenseManager; public class Main { diff --git a/src/main/java/com/gatomalvado/splitwise/README.md b/src/main/java/com/gatomalvado/done/splitwise/README.md similarity index 100% rename from src/main/java/com/gatomalvado/splitwise/README.md rename to src/main/java/com/gatomalvado/done/splitwise/README.md diff --git a/src/main/java/com/gatomalvado/splitwise/model/Expense.java b/src/main/java/com/gatomalvado/done/splitwise/model/Expense.java similarity index 86% rename from src/main/java/com/gatomalvado/splitwise/model/Expense.java rename to src/main/java/com/gatomalvado/done/splitwise/model/Expense.java index dc60538..4d5760a 100644 --- a/src/main/java/com/gatomalvado/splitwise/model/Expense.java +++ b/src/main/java/com/gatomalvado/done/splitwise/model/Expense.java @@ -1,7 +1,6 @@ -package com.gatomalvado.splitwise.model; +package com.gatomalvado.done.splitwise.model; import java.util.List; -import java.util.Set; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/src/main/java/com/gatomalvado/splitwise/model/ExpenseType.java b/src/main/java/com/gatomalvado/done/splitwise/model/ExpenseType.java similarity index 79% rename from src/main/java/com/gatomalvado/splitwise/model/ExpenseType.java rename to src/main/java/com/gatomalvado/done/splitwise/model/ExpenseType.java index 9422257..7d39808 100644 --- a/src/main/java/com/gatomalvado/splitwise/model/ExpenseType.java +++ b/src/main/java/com/gatomalvado/done/splitwise/model/ExpenseType.java @@ -1,4 +1,4 @@ -package com.gatomalvado.splitwise.model; +package com.gatomalvado.done.splitwise.model; public enum ExpenseType { EQUAL("equal"), diff --git a/src/main/java/com/gatomalvado/splitwise/model/User.java b/src/main/java/com/gatomalvado/done/splitwise/model/User.java similarity index 83% rename from src/main/java/com/gatomalvado/splitwise/model/User.java rename to src/main/java/com/gatomalvado/done/splitwise/model/User.java index 8e405d1..5fb2434 100644 --- a/src/main/java/com/gatomalvado/splitwise/model/User.java +++ b/src/main/java/com/gatomalvado/done/splitwise/model/User.java @@ -1,4 +1,4 @@ -package com.gatomalvado.splitwise.model; +package com.gatomalvado.done.splitwise.model; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/src/main/java/com/gatomalvado/splitwise/model/UserBalance.java b/src/main/java/com/gatomalvado/done/splitwise/model/UserBalance.java similarity index 85% rename from src/main/java/com/gatomalvado/splitwise/model/UserBalance.java rename to src/main/java/com/gatomalvado/done/splitwise/model/UserBalance.java index 1fdff03..cc6e21d 100644 --- a/src/main/java/com/gatomalvado/splitwise/model/UserBalance.java +++ b/src/main/java/com/gatomalvado/done/splitwise/model/UserBalance.java @@ -1,4 +1,4 @@ -package com.gatomalvado.splitwise.model; +package com.gatomalvado.done.splitwise.model; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/src/main/java/com/gatomalvado/splitwise/orchestrator/ExpenseManager.java b/src/main/java/com/gatomalvado/done/splitwise/orchestrator/ExpenseManager.java similarity index 84% rename from src/main/java/com/gatomalvado/splitwise/orchestrator/ExpenseManager.java rename to src/main/java/com/gatomalvado/done/splitwise/orchestrator/ExpenseManager.java index 5f12a2c..0b48619 100644 --- a/src/main/java/com/gatomalvado/splitwise/orchestrator/ExpenseManager.java +++ b/src/main/java/com/gatomalvado/done/splitwise/orchestrator/ExpenseManager.java @@ -1,19 +1,17 @@ -package com.gatomalvado.splitwise.orchestrator; +package com.gatomalvado.done.splitwise.orchestrator; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.ServiceLoader; -import java.util.stream.Collectors; -import com.gatomalvado.splitwise.model.Expense; -import com.gatomalvado.splitwise.model.ExpenseType; -import com.gatomalvado.splitwise.model.User; -import com.gatomalvado.splitwise.model.UserBalance; -import com.gatomalvado.splitwise.service.StrategyConfig; -import com.gatomalvado.splitwise.service.UserBalanceGenerator; +import com.gatomalvado.done.splitwise.model.Expense; +import com.gatomalvado.done.splitwise.model.ExpenseType; +import com.gatomalvado.done.splitwise.model.User; +import com.gatomalvado.done.splitwise.model.UserBalance; +import com.gatomalvado.done.splitwise.service.StrategyConfig; +import com.gatomalvado.done.splitwise.service.UserBalanceGenerator; public class ExpenseManager { diff --git a/src/main/java/com/gatomalvado/splitwise/service/StrategyConfig.java b/src/main/java/com/gatomalvado/done/splitwise/service/StrategyConfig.java similarity index 64% rename from src/main/java/com/gatomalvado/splitwise/service/StrategyConfig.java rename to src/main/java/com/gatomalvado/done/splitwise/service/StrategyConfig.java index 5db9467..1dbea7d 100644 --- a/src/main/java/com/gatomalvado/splitwise/service/StrategyConfig.java +++ b/src/main/java/com/gatomalvado/done/splitwise/service/StrategyConfig.java @@ -1,10 +1,10 @@ -package com.gatomalvado.splitwise.service; +package com.gatomalvado.done.splitwise.service; import java.util.List; -import com.gatomalvado.splitwise.service.impl.EqualUserBalanceGenerator; -import com.gatomalvado.splitwise.service.impl.ExactUserBalanceGenerator; -import com.gatomalvado.splitwise.service.impl.PercentUserBalanceGenerator; +import com.gatomalvado.done.splitwise.service.impl.EqualUserBalanceGenerator; +import com.gatomalvado.done.splitwise.service.impl.ExactUserBalanceGenerator; +import com.gatomalvado.done.splitwise.service.impl.PercentUserBalanceGenerator; public class StrategyConfig { diff --git a/src/main/java/com/gatomalvado/done/splitwise/service/UserBalanceGenerator.java b/src/main/java/com/gatomalvado/done/splitwise/service/UserBalanceGenerator.java new file mode 100644 index 0000000..e354ad2 --- /dev/null +++ b/src/main/java/com/gatomalvado/done/splitwise/service/UserBalanceGenerator.java @@ -0,0 +1,13 @@ +package com.gatomalvado.done.splitwise.service; + +import java.util.List; + +import com.gatomalvado.done.splitwise.model.Expense; +import com.gatomalvado.done.splitwise.model.ExpenseType; +import com.gatomalvado.done.splitwise.model.UserBalance; + +public interface UserBalanceGenerator { + List generateUserBalance(Expense expense); + + ExpenseType getType(); +} diff --git a/src/main/java/com/gatomalvado/splitwise/service/impl/EqualUserBalanceGenerator.java b/src/main/java/com/gatomalvado/done/splitwise/service/impl/EqualUserBalanceGenerator.java similarity index 73% rename from src/main/java/com/gatomalvado/splitwise/service/impl/EqualUserBalanceGenerator.java rename to src/main/java/com/gatomalvado/done/splitwise/service/impl/EqualUserBalanceGenerator.java index 696987f..708f86f 100644 --- a/src/main/java/com/gatomalvado/splitwise/service/impl/EqualUserBalanceGenerator.java +++ b/src/main/java/com/gatomalvado/done/splitwise/service/impl/EqualUserBalanceGenerator.java @@ -1,12 +1,12 @@ -package com.gatomalvado.splitwise.service.impl; +package com.gatomalvado.done.splitwise.service.impl; import java.util.ArrayList; import java.util.List; -import com.gatomalvado.splitwise.model.Expense; -import com.gatomalvado.splitwise.model.ExpenseType; -import com.gatomalvado.splitwise.model.UserBalance; -import com.gatomalvado.splitwise.service.UserBalanceGenerator; +import com.gatomalvado.done.splitwise.model.Expense; +import com.gatomalvado.done.splitwise.model.ExpenseType; +import com.gatomalvado.done.splitwise.model.UserBalance; +import com.gatomalvado.done.splitwise.service.UserBalanceGenerator; public class EqualUserBalanceGenerator implements UserBalanceGenerator { diff --git a/src/main/java/com/gatomalvado/splitwise/service/impl/ExactUserBalanceGenerator.java b/src/main/java/com/gatomalvado/done/splitwise/service/impl/ExactUserBalanceGenerator.java similarity index 78% rename from src/main/java/com/gatomalvado/splitwise/service/impl/ExactUserBalanceGenerator.java rename to src/main/java/com/gatomalvado/done/splitwise/service/impl/ExactUserBalanceGenerator.java index 94af301..dc0abb1 100644 --- a/src/main/java/com/gatomalvado/splitwise/service/impl/ExactUserBalanceGenerator.java +++ b/src/main/java/com/gatomalvado/done/splitwise/service/impl/ExactUserBalanceGenerator.java @@ -1,13 +1,12 @@ -package com.gatomalvado.splitwise.service.impl; +package com.gatomalvado.done.splitwise.service.impl; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.atomic.AtomicReference; -import com.gatomalvado.splitwise.model.Expense; -import com.gatomalvado.splitwise.model.ExpenseType; -import com.gatomalvado.splitwise.model.UserBalance; -import com.gatomalvado.splitwise.service.UserBalanceGenerator; +import com.gatomalvado.done.splitwise.model.Expense; +import com.gatomalvado.done.splitwise.model.ExpenseType; +import com.gatomalvado.done.splitwise.model.UserBalance; +import com.gatomalvado.done.splitwise.service.UserBalanceGenerator; public class ExactUserBalanceGenerator implements UserBalanceGenerator { diff --git a/src/main/java/com/gatomalvado/splitwise/service/impl/PercentUserBalanceGenerator.java b/src/main/java/com/gatomalvado/done/splitwise/service/impl/PercentUserBalanceGenerator.java similarity index 82% rename from src/main/java/com/gatomalvado/splitwise/service/impl/PercentUserBalanceGenerator.java rename to src/main/java/com/gatomalvado/done/splitwise/service/impl/PercentUserBalanceGenerator.java index 08191cd..76c0192 100644 --- a/src/main/java/com/gatomalvado/splitwise/service/impl/PercentUserBalanceGenerator.java +++ b/src/main/java/com/gatomalvado/done/splitwise/service/impl/PercentUserBalanceGenerator.java @@ -1,13 +1,13 @@ -package com.gatomalvado.splitwise.service.impl; +package com.gatomalvado.done.splitwise.service.impl; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicReference; -import com.gatomalvado.splitwise.model.Expense; -import com.gatomalvado.splitwise.model.ExpenseType; -import com.gatomalvado.splitwise.model.UserBalance; -import com.gatomalvado.splitwise.service.UserBalanceGenerator; +import com.gatomalvado.done.splitwise.model.Expense; +import com.gatomalvado.done.splitwise.model.ExpenseType; +import com.gatomalvado.done.splitwise.model.UserBalance; +import com.gatomalvado.done.splitwise.service.UserBalanceGenerator; public class PercentUserBalanceGenerator implements UserBalanceGenerator { diff --git a/src/main/java/com/gatomalvado/tictactoe/Main.java b/src/main/java/com/gatomalvado/done/tictactoe/Main.java similarity index 91% rename from src/main/java/com/gatomalvado/tictactoe/Main.java rename to src/main/java/com/gatomalvado/done/tictactoe/Main.java index 2f1ca92..ea7e9dd 100644 --- a/src/main/java/com/gatomalvado/tictactoe/Main.java +++ b/src/main/java/com/gatomalvado/done/tictactoe/Main.java @@ -1,15 +1,13 @@ -package com.gatomalvado.tictactoe; +package com.gatomalvado.done.tictactoe; import java.util.ArrayList; import java.util.List; import java.util.Scanner; -import java.util.function.IntConsumer; -import java.util.stream.IntStream; -import com.gatomalvado.tictactoe.model.Move; -import com.gatomalvado.tictactoe.model.Symbol; -import com.gatomalvado.tictactoe.model.User; -import com.gatomalvado.tictactoe.orchestrator.TicTacToeGame; +import com.gatomalvado.done.tictactoe.model.Move; +import com.gatomalvado.done.tictactoe.model.Symbol; +import com.gatomalvado.done.tictactoe.model.User; +import com.gatomalvado.done.tictactoe.orchestrator.TicTacToeGame; public class Main { diff --git a/src/main/java/com/gatomalvado/tictactoe/README.md b/src/main/java/com/gatomalvado/done/tictactoe/README.md similarity index 100% rename from src/main/java/com/gatomalvado/tictactoe/README.md rename to src/main/java/com/gatomalvado/done/tictactoe/README.md diff --git a/src/main/java/com/gatomalvado/tictactoe/model/Board.java b/src/main/java/com/gatomalvado/done/tictactoe/model/Board.java similarity index 96% rename from src/main/java/com/gatomalvado/tictactoe/model/Board.java rename to src/main/java/com/gatomalvado/done/tictactoe/model/Board.java index af0049e..868eda2 100644 --- a/src/main/java/com/gatomalvado/tictactoe/model/Board.java +++ b/src/main/java/com/gatomalvado/done/tictactoe/model/Board.java @@ -1,4 +1,5 @@ -package com.gatomalvado.tictactoe.model; +package com.gatomalvado.done.tictactoe.model; + public class Board { private Symbol[][] cells; diff --git a/src/main/java/com/gatomalvado/tictactoe/model/Move.java b/src/main/java/com/gatomalvado/done/tictactoe/model/Move.java similarity index 86% rename from src/main/java/com/gatomalvado/tictactoe/model/Move.java rename to src/main/java/com/gatomalvado/done/tictactoe/model/Move.java index fad2010..58d3da2 100644 --- a/src/main/java/com/gatomalvado/tictactoe/model/Move.java +++ b/src/main/java/com/gatomalvado/done/tictactoe/model/Move.java @@ -1,4 +1,4 @@ -package com.gatomalvado.tictactoe.model; +package com.gatomalvado.done.tictactoe.model; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/gatomalvado/tictactoe/model/Symbol.java b/src/main/java/com/gatomalvado/done/tictactoe/model/Symbol.java similarity index 84% rename from src/main/java/com/gatomalvado/tictactoe/model/Symbol.java rename to src/main/java/com/gatomalvado/done/tictactoe/model/Symbol.java index 39fddc7..1884e37 100644 --- a/src/main/java/com/gatomalvado/tictactoe/model/Symbol.java +++ b/src/main/java/com/gatomalvado/done/tictactoe/model/Symbol.java @@ -1,4 +1,4 @@ -package com.gatomalvado.tictactoe.model; +package com.gatomalvado.done.tictactoe.model; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/com/gatomalvado/tictactoe/model/User.java b/src/main/java/com/gatomalvado/done/tictactoe/model/User.java similarity index 81% rename from src/main/java/com/gatomalvado/tictactoe/model/User.java rename to src/main/java/com/gatomalvado/done/tictactoe/model/User.java index 6aa84d0..d3166d2 100644 --- a/src/main/java/com/gatomalvado/tictactoe/model/User.java +++ b/src/main/java/com/gatomalvado/done/tictactoe/model/User.java @@ -1,4 +1,4 @@ -package com.gatomalvado.tictactoe.model; +package com.gatomalvado.done.tictactoe.model; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/com/gatomalvado/tictactoe/orchestrator/TicTacToeGame.java b/src/main/java/com/gatomalvado/done/tictactoe/orchestrator/TicTacToeGame.java similarity index 88% rename from src/main/java/com/gatomalvado/tictactoe/orchestrator/TicTacToeGame.java rename to src/main/java/com/gatomalvado/done/tictactoe/orchestrator/TicTacToeGame.java index f607eba..4e9617c 100644 --- a/src/main/java/com/gatomalvado/tictactoe/orchestrator/TicTacToeGame.java +++ b/src/main/java/com/gatomalvado/done/tictactoe/orchestrator/TicTacToeGame.java @@ -1,4 +1,4 @@ -package com.gatomalvado.tictactoe.orchestrator; +package com.gatomalvado.done.tictactoe.orchestrator; import java.util.ArrayList; import java.util.HashMap; @@ -7,12 +7,12 @@ import java.util.Map; import java.util.Queue; -import com.gatomalvado.tictactoe.model.Board; -import com.gatomalvado.tictactoe.model.Move; -import com.gatomalvado.tictactoe.model.Symbol; -import com.gatomalvado.tictactoe.model.User; -import com.gatomalvado.tictactoe.service.BoardFactory; -import com.gatomalvado.tictactoe.service.StrategyFactory; +import com.gatomalvado.done.tictactoe.model.Board; +import com.gatomalvado.done.tictactoe.model.Move; +import com.gatomalvado.done.tictactoe.model.Symbol; +import com.gatomalvado.done.tictactoe.model.User; +import com.gatomalvado.done.tictactoe.service.BoardFactory; +import com.gatomalvado.done.tictactoe.service.StrategyFactory; public class TicTacToeGame { diff --git a/src/main/java/com/gatomalvado/tictactoe/service/BoardFactory.java b/src/main/java/com/gatomalvado/done/tictactoe/service/BoardFactory.java similarity index 74% rename from src/main/java/com/gatomalvado/tictactoe/service/BoardFactory.java rename to src/main/java/com/gatomalvado/done/tictactoe/service/BoardFactory.java index bbd94e4..9c130b6 100644 --- a/src/main/java/com/gatomalvado/tictactoe/service/BoardFactory.java +++ b/src/main/java/com/gatomalvado/done/tictactoe/service/BoardFactory.java @@ -1,6 +1,6 @@ -package com.gatomalvado.tictactoe.service; +package com.gatomalvado.done.tictactoe.service; -import com.gatomalvado.tictactoe.model.Board; +import com.gatomalvado.done.tictactoe.model.Board; public class BoardFactory { public Board createBoard(int noOfUsers){ diff --git a/src/main/java/com/gatomalvado/done/tictactoe/service/IWinnerDeciderStrategy.java b/src/main/java/com/gatomalvado/done/tictactoe/service/IWinnerDeciderStrategy.java new file mode 100644 index 0000000..11acf7e --- /dev/null +++ b/src/main/java/com/gatomalvado/done/tictactoe/service/IWinnerDeciderStrategy.java @@ -0,0 +1,8 @@ +package com.gatomalvado.done.tictactoe.service; + +import com.gatomalvado.done.tictactoe.model.Board; + +public interface IWinnerDeciderStrategy { + + boolean isThereIsAnyWinner(Board board); +} diff --git a/src/main/java/com/gatomalvado/tictactoe/service/StrategyFactory.java b/src/main/java/com/gatomalvado/done/tictactoe/service/StrategyFactory.java similarity index 73% rename from src/main/java/com/gatomalvado/tictactoe/service/StrategyFactory.java rename to src/main/java/com/gatomalvado/done/tictactoe/service/StrategyFactory.java index e71e8fc..5aaa971 100644 --- a/src/main/java/com/gatomalvado/tictactoe/service/StrategyFactory.java +++ b/src/main/java/com/gatomalvado/done/tictactoe/service/StrategyFactory.java @@ -1,7 +1,7 @@ -package com.gatomalvado.tictactoe.service; +package com.gatomalvado.done.tictactoe.service; -import com.gatomalvado.tictactoe.model.Board; -import com.gatomalvado.tictactoe.service.impl.TwoWinnerStrategy; +import com.gatomalvado.done.tictactoe.model.Board; +import com.gatomalvado.done.tictactoe.service.impl.TwoWinnerStrategy; public class StrategyFactory { diff --git a/src/main/java/com/gatomalvado/tictactoe/service/impl/TwoWinnerStrategy.java b/src/main/java/com/gatomalvado/done/tictactoe/service/impl/TwoWinnerStrategy.java similarity index 92% rename from src/main/java/com/gatomalvado/tictactoe/service/impl/TwoWinnerStrategy.java rename to src/main/java/com/gatomalvado/done/tictactoe/service/impl/TwoWinnerStrategy.java index 676c1ab..f10c326 100644 --- a/src/main/java/com/gatomalvado/tictactoe/service/impl/TwoWinnerStrategy.java +++ b/src/main/java/com/gatomalvado/done/tictactoe/service/impl/TwoWinnerStrategy.java @@ -1,8 +1,8 @@ -package com.gatomalvado.tictactoe.service.impl; +package com.gatomalvado.done.tictactoe.service.impl; -import com.gatomalvado.tictactoe.model.Board; -import com.gatomalvado.tictactoe.model.Symbol; -import com.gatomalvado.tictactoe.service.IWinnerDeciderStrategy; +import com.gatomalvado.done.tictactoe.model.Board; +import com.gatomalvado.done.tictactoe.model.Symbol; +import com.gatomalvado.done.tictactoe.service.IWinnerDeciderStrategy; public class TwoWinnerStrategy implements IWinnerDeciderStrategy { diff --git a/src/main/java/com/gatomalvado/eventbus/README.md b/src/main/java/com/gatomalvado/eventbus/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/java/com/gatomalvado/snakesandladders/model/Ladder.java b/src/main/java/com/gatomalvado/snakesandladders/model/Ladder.java deleted file mode 100644 index e6e7403..0000000 --- a/src/main/java/com/gatomalvado/snakesandladders/model/Ladder.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gatomalvado.snakesandladders.model; - -import com.gatomalvado.snakesandladders.model.enums.EntityType; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Getter -public class Ladder extends Entity { - - public Ladder(String id, int xPos, int yPos) { - super(id, xPos, yPos, EntityType.LADDER); - } -} diff --git a/src/main/java/com/gatomalvado/snakesandladders/model/Snake.java b/src/main/java/com/gatomalvado/snakesandladders/model/Snake.java deleted file mode 100644 index e86e296..0000000 --- a/src/main/java/com/gatomalvado/snakesandladders/model/Snake.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gatomalvado.snakesandladders.model; - -import com.gatomalvado.snakesandladders.model.enums.EntityType; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Getter -public class Snake extends Entity { - - public Snake(String id, int xPos, int yPos) { - super(id, xPos, yPos, EntityType.SNAKE); - } -} diff --git a/src/main/java/com/gatomalvado/snakesandladders/service/BoardGenerator.java b/src/main/java/com/gatomalvado/snakesandladders/service/BoardGenerator.java deleted file mode 100644 index 984aae0..0000000 --- a/src/main/java/com/gatomalvado/snakesandladders/service/BoardGenerator.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.gatomalvado.snakesandladders.service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Queue; -import java.util.Scanner; -import java.util.Set; - -import com.gatomalvado.snakesandladders.model.Ladder; -import com.gatomalvado.snakesandladders.model.Player; -import com.gatomalvado.snakesandladders.model.Snake; - -public interface BoardGenerator{ - - Queue takePlayerInput(); - - List takeSnakeInput(); - - List takeLadderInput(); - -} diff --git a/src/main/java/com/gatomalvado/splitwise/service/UserBalanceGenerator.java b/src/main/java/com/gatomalvado/splitwise/service/UserBalanceGenerator.java deleted file mode 100644 index e5b72a2..0000000 --- a/src/main/java/com/gatomalvado/splitwise/service/UserBalanceGenerator.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.gatomalvado.splitwise.service; - -import java.util.List; - -import com.gatomalvado.splitwise.model.Expense; -import com.gatomalvado.splitwise.model.ExpenseType; -import com.gatomalvado.splitwise.model.UserBalance; - -public interface UserBalanceGenerator { - List generateUserBalance(Expense expense); - - ExpenseType getType(); -} diff --git a/src/main/java/com/gatomalvado/tictactoe/service/IWinnerDeciderStrategy.java b/src/main/java/com/gatomalvado/tictactoe/service/IWinnerDeciderStrategy.java deleted file mode 100644 index fd5e580..0000000 --- a/src/main/java/com/gatomalvado/tictactoe/service/IWinnerDeciderStrategy.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.gatomalvado.tictactoe.service; - -import com.gatomalvado.tictactoe.model.Board; - -public interface IWinnerDeciderStrategy { - - boolean isThereIsAnyWinner(Board board); -} diff --git a/src/main/java/com/gatomalvado/todo/contactmgmt/Main.java b/src/main/java/com/gatomalvado/todo/contactmgmt/Main.java new file mode 100644 index 0000000..84da536 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/contactmgmt/Main.java @@ -0,0 +1,57 @@ +package com.gatomalvado.todo.contactmgmt; + +import java.util.UUID; + +import com.gatomalvado.todo.contactmgmt.entities.Contact; +import com.gatomalvado.todo.contactmgmt.services.ContactRepository; +import com.gatomalvado.todo.contactmgmt.services.MapBasedStrategy; +import com.gatomalvado.todo.contactmgmt.services.SearchStrategy; + +public class Main { + + public static void main(String[] args) { + System.out.println("Hello Contact Mgmt System!"); + SearchStrategy searchStrategy = new MapBasedStrategy(); + ContactRepository contactRepository = new ContactRepository(searchStrategy); + + Contact ct0 = Contact.builder() + .id(UUID.randomUUID().toString()) + .countryCode("91").firstName("f1").lastName("l1") + .phoneNumber("8881899999").build(); + + Contact ct1 = Contact.builder() + .id(UUID.randomUUID().toString()) + .countryCode("91").firstName("f1").lastName("abl1") + .phoneNumber("8888299999").build(); + + Contact ct2 = Contact.builder() + .id(UUID.randomUUID().toString()) + .countryCode("91").firstName("kf1").lastName("al1") + .phoneNumber("8888839999").build(); + + Contact ct3 = Contact.builder() + .id(UUID.randomUUID().toString()) + .countryCode("91").firstName("kjsh1").lastName("cdl1") + .phoneNumber("8888894999").build(); + + Contact ct4 = Contact.builder() + .id(UUID.randomUUID().toString()) + .countryCode("91").firstName("kjhf1").lastName("cdel1") + .phoneNumber("8888899599").build(); + + Contact ct5 = Contact.builder() + .id(UUID.randomUUID().toString()) + .countryCode("91").firstName("ffg1").lastName("cdl2") + .phoneNumber("8888899996").build(); + + contactRepository.add(ct1); contactRepository.add(ct3); contactRepository.add(ct5); contactRepository.add(ct0); + contactRepository.add(ct2); contactRepository.add(ct4); + + System.out.println(contactRepository.searchByFirstName("f1")); + System.out.println(contactRepository.searchByFirstName("kj")); + System.out.println(contactRepository.searchByFirstName("ff")); + System.out.println(contactRepository.searchByLastName("cd")); + System.out.println(contactRepository.searchByPhone("888889959")); + } + +} diff --git a/src/main/java/com/gatomalvado/todo/contactmgmt/README.md b/src/main/java/com/gatomalvado/todo/contactmgmt/README.md new file mode 100644 index 0000000..28beed3 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/contactmgmt/README.md @@ -0,0 +1,15 @@ +machine-coding-contact-management-system +LLD Contact Management System +Functionality: +Add/update contact(s) +Search contacts (partial - prefix or complete) (Note in all searches show the total count & search results) +Search by first name (search term is case insensitive) +Search by last name (search term is case insensitive) +Search by phone number +Expectations: +Identify all the entities and attributes required for the above functionality +Please don’t create REST APIs or any UI for the same. +Please don't use any database or data stores for this. You can store the data in-memory data structures. +You can test the functionality using unit test cases. +The focus is on the core functionality and how it is implemented v/s how it is presented (UI or API structure). +Use coding best practices (SOLID, DRY, etc.) and ensure that you are writing modular & extensible code (to accommodate any future changes in functionality) diff --git a/src/main/java/com/gatomalvado/todo/contactmgmt/entities/Contact.java b/src/main/java/com/gatomalvado/todo/contactmgmt/entities/Contact.java new file mode 100644 index 0000000..744bacf --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/contactmgmt/entities/Contact.java @@ -0,0 +1,24 @@ +package com.gatomalvado.todo.contactmgmt.entities; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class Contact { + + private String id; + private String firstName; + private String lastName; + private String phoneNumber; + private String countryCode; + + public String toString() { + return "{ id: "+ id + " 'firstName': "+firstName + ", 'lastName':" + lastName + ", 'phoneNumber': +" + countryCode + "-"+ phoneNumber +"}"; + } + +} diff --git a/src/main/java/com/gatomalvado/todo/contactmgmt/entities/SearchResult.java b/src/main/java/com/gatomalvado/todo/contactmgmt/entities/SearchResult.java new file mode 100644 index 0000000..67b3a87 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/contactmgmt/entities/SearchResult.java @@ -0,0 +1,15 @@ +package com.gatomalvado.todo.contactmgmt.entities; + +import java.util.List; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@AllArgsConstructor +@Data +public class SearchResult { + + private int totalCount; + private List contacts; + +} diff --git a/src/main/java/com/gatomalvado/todo/contactmgmt/services/ContactRepository.java b/src/main/java/com/gatomalvado/todo/contactmgmt/services/ContactRepository.java new file mode 100644 index 0000000..bcd0442 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/contactmgmt/services/ContactRepository.java @@ -0,0 +1,92 @@ +package com.gatomalvado.todo.contactmgmt.services; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.gatomalvado.todo.contactmgmt.entities.Contact; +import com.gatomalvado.todo.contactmgmt.entities.SearchResult; + +public class ContactRepository { + + private Map contactsMap; + private SearchStrategy searchStrategy; + + + public ContactRepository(SearchStrategy searchStrategy) { + this.contactsMap = new HashMap<>(); + this.searchStrategy = searchStrategy; + } + + public void add(Contact contact) { + this.contactsMap.put(contact.getId(), contact); + this.searchStrategy.access(contact); + } + + public void remove(String contactId) { + Contact contact = this.contactsMap.get(contactId); + this.contactsMap.remove(contactId); + this.searchStrategy.remove(contact); + } + + public void updateFirstName(String contactId, String firstName) { + Contact contact = this.contactsMap.get(contactId); + contact.setFirstName(firstName); + this.searchStrategy.access(contact); + } + + public void updateLastName(String contactId, String lastname) { + Contact contact = this.contactsMap.get(contactId); + contact.setLastName(lastname); + this.searchStrategy.access(contact); + } + + public void updatePhone(String contactId, String phone, String countryCode) { + Contact contact = this.contactsMap.get(contactId); + contact.setPhoneNumber(phone); + contact.setCountryCode(countryCode); + this.searchStrategy.access(contact); + } + + public SearchResult searchByFirstName(String input) { + return this.searchStrategy.search(input, "firstName"); + } + + public SearchResult searchByLastName(String input) { + return this.searchStrategy.search(input, "lastName"); + } + + public SearchResult searchByPhone(String input) { + return this.searchStrategy.search(input, "phone"); + } + + public List getAllContacts() { + return new ArrayList<>(this.contactsMap.values()); + } + + private void validatePhone(String phone) { + for (Character c : phone.toCharArray()) { + if (!Character.isDigit(c)) { + throw new IllegalArgumentException("Phone number must be digits"); + } + } + } + + private void validateCountryCode(String countryCode) { + for (Character c : countryCode.toCharArray()) { + if (!Character.isDigit(c)) { + throw new IllegalArgumentException("Country code must be digits"); + } + } + int value = Integer.parseInt(countryCode); + if(value < 1 || value > 210) { + throw new IllegalArgumentException("Country code must be between 1 and 210"); + } + } + + + + +} diff --git a/src/main/java/com/gatomalvado/todo/contactmgmt/services/ContactTrie.java b/src/main/java/com/gatomalvado/todo/contactmgmt/services/ContactTrie.java new file mode 100644 index 0000000..932e0cd --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/contactmgmt/services/ContactTrie.java @@ -0,0 +1,8 @@ +package com.gatomalvado.todo.contactmgmt.services; + + +public class ContactTrie { + + private Node root; + +} diff --git a/src/main/java/com/gatomalvado/todo/contactmgmt/services/MapBasedStrategy.java b/src/main/java/com/gatomalvado/todo/contactmgmt/services/MapBasedStrategy.java new file mode 100644 index 0000000..f9ceab6 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/contactmgmt/services/MapBasedStrategy.java @@ -0,0 +1,75 @@ +package com.gatomalvado.todo.contactmgmt.services; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.gatomalvado.todo.contactmgmt.entities.Contact; +import com.gatomalvado.todo.contactmgmt.entities.SearchResult; + +public class MapBasedStrategy implements SearchStrategy { + + private Map contactsMap; + + public MapBasedStrategy() { + this.contactsMap = new HashMap<>(); + } + + @Override + public void access(Contact contact) { + contactsMap.put(contact.getId(), contact); + } + + @Override + public void remove(Contact contact) { + this.contactsMap.remove(contact.getId()); + } + + @Override + public SearchResult search(String fieldValue, String fieldName) { + switch (fieldName) { + case "firstName": + return searchByFirstName(fieldValue); + case "lastName": + return searchByLastName(fieldValue); + case "phone": + return searchByPhone(fieldValue); + default: + return new SearchResult(0, new ArrayList<>()); + } + } + + private SearchResult searchByFirstName(String firstName) { + List results = this.contactsMap.values() + .stream() + .filter((c) -> matchPrefix(c.getFirstName(), firstName)) + .collect(Collectors.toUnmodifiableList()); + + return new SearchResult(results.size(), results); + } + + private SearchResult searchByLastName(String lastName) { + List results = this.contactsMap.values() + .stream() + .filter((c) -> matchPrefix(c.getLastName(), lastName)) + .collect(Collectors.toUnmodifiableList()); + + return new SearchResult(results.size(), results); + } + + private SearchResult searchByPhone(String phone) { + List results = this.contactsMap.values() + .stream() + .filter((c) -> matchPrefix(c.getPhoneNumber(), phone)) + .collect(Collectors.toUnmodifiableList()); + + return new SearchResult(results.size(), results); + } + + private boolean matchPrefix(String value, String prefix) { + return value.startsWith(prefix); + } + +} diff --git a/src/main/java/com/gatomalvado/todo/contactmgmt/services/Node.java b/src/main/java/com/gatomalvado/todo/contactmgmt/services/Node.java new file mode 100644 index 0000000..de6365c --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/contactmgmt/services/Node.java @@ -0,0 +1,25 @@ +package com.gatomalvado.todo.contactmgmt.services; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.gatomalvado.todo.contactmgmt.entities.Contact; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +public class Node { + private boolean isEnd; + private Map node; + private List contacts; + + public Node() { + node = new HashMap<>(); + contacts = new ArrayList<>(); + } +} diff --git a/src/main/java/com/gatomalvado/todo/contactmgmt/services/SearchStrategy.java b/src/main/java/com/gatomalvado/todo/contactmgmt/services/SearchStrategy.java new file mode 100644 index 0000000..efe83ee --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/contactmgmt/services/SearchStrategy.java @@ -0,0 +1,16 @@ +package com.gatomalvado.todo.contactmgmt.services; + +import java.util.List; + +import com.gatomalvado.todo.contactmgmt.entities.Contact; +import com.gatomalvado.todo.contactmgmt.entities.SearchResult; + +public interface SearchStrategy { + + void access(Contact contact); + + void remove(Contact contact); + + SearchResult search(String fieldValue, String fieldName); + +} diff --git a/src/main/java/com/gatomalvado/todo/multithreadedwebcrawler/Main.java b/src/main/java/com/gatomalvado/todo/multithreadedwebcrawler/Main.java new file mode 100644 index 0000000..87ea6b9 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/multithreadedwebcrawler/Main.java @@ -0,0 +1,9 @@ +package com.gatomalvado.todo.multithreadedwebcrawler; + +public class Main { + + public static void main(String[] args) { + System.out.println("Hello Multithreaded Web Crawler!"); + } + +} diff --git a/src/main/java/com/gatomalvado/todo/trello/Main.java b/src/main/java/com/gatomalvado/todo/trello/Main.java new file mode 100644 index 0000000..7594719 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/trello/Main.java @@ -0,0 +1,158 @@ +package com.gatomalvado.todo.trello; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.gatomalvado.todo.trello.entities.TaskUser; +import com.gatomalvado.todo.trello.entities.TrelloBoard; +import com.gatomalvado.todo.trello.enums.Status; +import com.gatomalvado.todo.trello.service.BoardService; + +public class Main { + + public static void main(String[] args) { + System.out.println("Hello Trell App!"); + + TaskUser taskUser1 = TaskUser.builder().id("1").name("user-1").email("user1@yvz.com").build(); + TaskUser taskUser2 = TaskUser.builder().id("2").name("user-2").email("user2@yvz.com").build(); + TaskUser taskUser3 = TaskUser.builder().id("3").name("user-3").email("user3@yvz.com").build(); + + BoardService boardService = new BoardService(); + + boardService.addUser(taskUser1); boardService.addUser(taskUser2); boardService.addUser(taskUser3); + + String input = myInput(); + String[] commands = input.trim().split("\n"); + List eachCommand = new ArrayList<>(); + for (String command : commands) { + eachCommand.add(command.trim().split(" ")); + } + + for(String[] cmdLine: eachCommand) { + String firstCommand = cmdLine[0]; + switch (firstCommand) { + case "SHOW": + handleShowCommand(cmdLine, boardService); + case "BOARD": + handlerBoardCommand(cmdLine, boardService); + case "LIST": + handleListCommand(cmdLine, boardService); + case "CARD": + handleCardCommand(cmdLine, boardService); + default: + break; + } + } + + } + + private static void handleShowCommand(String[] cmdLine, BoardService boardService) { + if(cmdLine.length == 1) { + boardService.show(); + return; + } + if(cmdLine.length == 3) { + switch (cmdLine[1]) { + case "CARD": + boardService.showCard(cmdLine[2]); + return; + case "LIST": + boardService.showList(cmdLine[2]); + return; + case "BOARD": + boardService.showBoard(cmdLine[2]); + return; + default: + } + } + } + + private static void handleListCommand(String[] cmdLine, BoardService boardService) { + if(cmdLine.length == 1) { + return; + } + if("CREATE".equals(cmdLine[1])) { + String boardId = cmdLine[2]; + boardService.createSubGroup(boardId, getString(cmdLine, 3)); + } else { + // update operation + if("name".equals(cmdLine[2])) { + boardService.updateSubGroupName(cmdLine[1], getString(cmdLine, 3)); + } + } + } + + private static String getString(String[] cmdLine, int ix) { + String args = ""; + for(int i = ix; i < cmdLine.length; i++) { + args += cmdLine[i]; + if(i != cmdLine.length - 1) { + args += " "; + } + } + return args; + } + + private static void handleCardCommand(String[] cmdLine, BoardService boardService) { + if(cmdLine.length == 1) { + return; + } + if("CREATE".equals(cmdLine[1])) { + String boardId = cmdLine[2]; + boardService.createCard(boardId, getString(cmdLine, 3)); + } else { + // update operation + if("name".equals(cmdLine[2])) { + boardService.updateSubGroupName(cmdLine[1], getString(cmdLine, 3)); + } + } + } + + private static void handlerBoardCommand(String[] cmdLine, BoardService boardService) { + + } + + private static String myInput() { + return """ + SHOW + BOARD CREATE work@tech + SHOW BOARD 5da1583ec25d2a7e246b0375 + SHOW + BOARD 5da1583ec25d2a7e246b0375 name workat.tech + BOARD 5da1583ec25d2a7e246b0375 privacy PRIVATE + SHOW BOARD 5da1583ec25d2a7e246b0375 + BOARD CREATE workat + SHOW + BOARD 5da1583ec25d2a7e246b0375 ADD_MEMBER user1 + BOARD 5da1583ec25d2a7e246b0375 ADD_MEMBER user2 + BOARD 5da1583ec25d2a7e246b0375 ADD_MEMBER user3 + BOARD 5da1583ec25d2a7e246b0375 REMOVE_MEMBER user2 + SHOW BOARD 5da1583ec25d2a7e246b0375 + BOARD DELETE 5da1586caaaad00d9b2d7aa6 + SHOW BOARD 5da1586caaaad00d9b2d7aa6 + SHOW + LIST CREATE 5da1583ec25d2a7e246b0375 Mock Interviews + SHOW LIST 5da1583547c78c15a1408df2 + LIST 5da1583547c78c15a1408df2 name Mock Interviews - Applied + SHOW LIST 5da1583547c78c15a1408df2 + LIST CREATE 5da1583ec25d2a7e246b0375 Mock Interviews - Scheduled + SHOW BOARD 5da1583ec25d2a7e246b0375 + CARD CREATE 5da1583547c78c15a1408df2 abcd@gmail.com + CARD CREATE 5da1583547c78c15a1408df2 abcda@gmail.com + SHOW LIST 5da1583547c78c15a1408df2 + CARD 5da1583547c78c15a14kj78g name abcde@gmail.com + CARD 5da1583547c78c15a14kj78g description At 7PM + SHOW LIST 5da1583547c78c15a1408df2 + CARD 5da1583547c78c15a14kjsd8 ASSIGN gaurav@workat.tech + SHOW CARD 5da1583547c78c15a14kjsd8 + CARD 5da1583547c78c15a14kjsd8 MOVE 5da1583547c78c15a143hj34 + SHOW LIST 5da1583547c78c15a1408df2 + SHOW LIST 5da1583547c78c15a143hj34 + CARD 5da1583547c78c15a14kjsd8 UNASSIGN + SHOW CARD 5da1583547c78c15a14kjsd8 + SHOW + """; + } + +} diff --git a/src/main/java/com/gatomalvado/todo/trello/entities/BaseEntity.java b/src/main/java/com/gatomalvado/todo/trello/entities/BaseEntity.java new file mode 100644 index 0000000..b676fd2 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/trello/entities/BaseEntity.java @@ -0,0 +1,7 @@ +package com.gatomalvado.todo.trello.entities; + +public abstract class BaseEntity { + public abstract String getEntityType(); + public abstract String getId(); + public abstract void printSelf(); +} diff --git a/src/main/java/com/gatomalvado/todo/trello/entities/Card.java b/src/main/java/com/gatomalvado/todo/trello/entities/Card.java new file mode 100644 index 0000000..c6f3d56 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/trello/entities/Card.java @@ -0,0 +1,52 @@ +package com.gatomalvado.todo.trello.entities; + +import java.util.Objects; + +import com.gatomalvado.todo.trello.enums.EntityType; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class Card extends BaseEntity { + // id, name, description, assigned user + private String id; + private String name; + private String description; + private TaskUser assignedUser; + private SubGroup subGroup; + + private EntityType entityType = EntityType.CARD; + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Card card = (Card) o; + return Objects.equals(id, card.id); + } + + @Override + public int hashCode() { + return Objects.hashCode(id); + } + + @Override + public String getEntityType() { + return this.entityType.name(); + } + + @Override + public void printSelf() { + System.out.println(this); + } +} diff --git a/src/main/java/com/gatomalvado/todo/trello/entities/SubGroup.java b/src/main/java/com/gatomalvado/todo/trello/entities/SubGroup.java new file mode 100644 index 0000000..d2d61e8 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/trello/entities/SubGroup.java @@ -0,0 +1,51 @@ +package com.gatomalvado.todo.trello.entities; + +import java.util.Objects; +import java.util.Set; + +import com.gatomalvado.todo.trello.enums.EntityType; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class SubGroup extends BaseEntity { + private String id; + private String boardId; + private String name; + private Set cards; + + private EntityType entityType = EntityType.SUBGROUP; + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SubGroup subGroup = (SubGroup) o; + return Objects.equals(id, subGroup.id); + } + + @Override + public int hashCode() { + return Objects.hashCode(id); + } + + @Override + public String getEntityType() { + return this.entityType.name(); + } + + @Override + public void printSelf() { + System.out.println(this); + } +} diff --git a/src/main/java/com/gatomalvado/todo/trello/entities/TaskUser.java b/src/main/java/com/gatomalvado/todo/trello/entities/TaskUser.java new file mode 100644 index 0000000..e591e72 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/trello/entities/TaskUser.java @@ -0,0 +1,51 @@ +package com.gatomalvado.todo.trello.entities; + +import java.util.Objects; +import java.util.Set; + +import com.gatomalvado.todo.trello.enums.EntityType; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TaskUser extends BaseEntity { + + private String id; + private String email; + private String name; + private Set boards; + private EntityType entityType = EntityType.TASK_USER; + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TaskUser taskUser = (TaskUser) o; + return Objects.equals(id, taskUser.id); + } + + @Override + public int hashCode() { + return Objects.hashCode(id); + } + + @Override + public String getEntityType() { + return this.entityType.name(); + } + + @Override + public void printSelf() { + System.out.println(this); + } +} diff --git a/src/main/java/com/gatomalvado/todo/trello/entities/TrelloBoard.java b/src/main/java/com/gatomalvado/todo/trello/entities/TrelloBoard.java new file mode 100644 index 0000000..ad752d3 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/trello/entities/TrelloBoard.java @@ -0,0 +1,55 @@ +package com.gatomalvado.todo.trello.entities; + +import java.util.Objects; +import java.util.Set; + +import com.gatomalvado.todo.trello.enums.EntityType; +import com.gatomalvado.todo.trello.enums.Status; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TrelloBoard extends BaseEntity { + // id, name, privacy (PUBLIC/PRIVATE), url, members, lists + private String id; + private String name; + private String url; + private Status status; + private Set taskMembers; + private Set subGroups; + + private EntityType entityType = EntityType.BOARD; + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrelloBoard trelloBoard = (TrelloBoard) o; + return Objects.equals(id, trelloBoard.id); + } + + @Override + public int hashCode() { + return Objects.hashCode(id); + } + + @Override + public String getEntityType() { + return this.entityType.name(); + } + + @Override + public void printSelf() { + System.out.println(this); + } +} diff --git a/src/main/java/com/gatomalvado/todo/trello/enums/EntityType.java b/src/main/java/com/gatomalvado/todo/trello/enums/EntityType.java new file mode 100644 index 0000000..3db4f24 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/trello/enums/EntityType.java @@ -0,0 +1,15 @@ +package com.gatomalvado.todo.trello.enums; + +public enum EntityType { + BOARD("board"), + TASK_USER("user"), + CARD("card"), + SUBGROUP("list"); + + private final String value; + + EntityType(String value) { + this.value = value; + } + +} diff --git a/src/main/java/com/gatomalvado/todo/trello/enums/Status.java b/src/main/java/com/gatomalvado/todo/trello/enums/Status.java new file mode 100644 index 0000000..d9c366d --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/trello/enums/Status.java @@ -0,0 +1,7 @@ +package com.gatomalvado.todo.trello.enums; + +public enum Status { + PUBLIC, + PRIVATE + +} diff --git a/src/main/java/com/gatomalvado/todo/trello/service/BoardService.java b/src/main/java/com/gatomalvado/todo/trello/service/BoardService.java new file mode 100644 index 0000000..15fc80b --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/trello/service/BoardService.java @@ -0,0 +1,164 @@ +package com.gatomalvado.todo.trello.service; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.UUID; + +import com.gatomalvado.todo.trello.entities.BaseEntity; +import com.gatomalvado.todo.trello.entities.TrelloBoard; +import com.gatomalvado.todo.trello.entities.Card; +import com.gatomalvado.todo.trello.entities.SubGroup; +import com.gatomalvado.todo.trello.entities.TaskUser; +import com.gatomalvado.todo.trello.enums.Status; + +public class BoardService { + + private Map taskUsersMap; + private Map cardMap; + private Map boardMap; + private Map listMap; + private Map urlMap; + + private final String ENDPOINT = "http://www.trello.com"; + + public BoardService() { + this.taskUsersMap = new HashMap<>(); + this.cardMap = new HashMap<>(); + this.boardMap = new HashMap<>(); + this.listMap = new HashMap<>(); + this.urlMap = new HashMap<>(); + } + + private String generateUrl(BaseEntity entity) { + return ENDPOINT + "/" + entity.getEntityType() + "/" + entity.getId(); + } + + public void createBoard(TrelloBoard board) { + String id = UUID.randomUUID().toString(); + board.setId(id); + board.setUrl(generateUrl(board)); + boardMap.put(id, board); + System.out.println("Created board: "+board.getId()); + } + + public void show() { + if(boardMap.isEmpty()) { + System.out.println("No boards"); + } + for(String key: boardMap.keySet()) { + boardMap.get(key).printSelf(); + } + } + + public void showBoard(String boardId) { + if(!boardMap.containsKey(boardId)) { + System.out.println("Board "+boardId+" does not exist"); + } + } + + public void changeBoardName(String boardId, String newName) { + TrelloBoard board = boardMap.get(boardId); + board.setName(newName); + } + + public void addMember(String boardId, String userId) { + TaskUser user = taskUsersMap.get(userId); + TrelloBoard board = boardMap.get(boardId); + board.getTaskMembers().add(user); + } + + public void removeMember(String boardId, String userId) { + TaskUser user = taskUsersMap.get(userId); + TrelloBoard board = boardMap.get(boardId); + board.getTaskMembers().remove(user); + } + + public void deleteBoard(String boardId) { + TrelloBoard board = boardMap.get(boardId); + Set subGroupSet = board.getSubGroups(); + for (SubGroup subGroup : subGroupSet) { + for(Card card: subGroup.getCards()) { + cardMap.remove(card.getId()); + } + listMap.remove(subGroup.getId()); + } + boardMap.remove(boardId); + } + + public void createSubGroup(String boardId, String name) { + TrelloBoard board = boardMap.get(boardId); + SubGroup subGroup = SubGroup.builder().name(name).id(UUID.randomUUID().toString()).build(); + board.getSubGroups().add(subGroup); + listMap.put(subGroup.getId(), subGroup); + System.out.println("Created list: "+subGroup.getId()); + } + + public void updateSubGroupName(String listId, String name) { + SubGroup subGroup = listMap.get(listId); + subGroup.setName(name); + } + + public void showList(String listId) { + if(!listMap.containsKey(listId)) { + System.out.println("List " + listId + " does not exist"); + } + SubGroup subGroup = listMap.get(listId); + subGroup.printSelf(); + } + + public void createCard(String listId, String name) { + Card card = Card.builder().id(UUID.randomUUID().toString()).name(name).build(); + card.setSubGroup(listMap.get(listId)); + listMap.get(listId).getCards().add(card); + System.out.println("Created card: "+card.getId()); + } + + public void assignCard(String cardId, String userId) { + Card card = cardMap.get(cardId); + card.setAssignedUser(taskUsersMap.get(userId)); + } + + public void unassignCard(String cardId) { + Card card = cardMap.get(cardId); + card.setAssignedUser(null); + } + + public void updateCardName(String cardId, String name) { + Card card = cardMap.get(cardId); + card.setName(name); + } + + public void moveCard(String cardId, String to) { + Card card = cardMap.get(cardId); + SubGroup fromList = card.getSubGroup(); + SubGroup toList = listMap.get(to); + fromList.getCards().remove(card); + toList.getCards().add(card); + card.setSubGroup(toList); + } + + public void setCardDescription(String cardId, String description) { + Card card = cardMap.get(cardId); + card.setDescription(description); + } + + public void setCardName(String cardId, String name) { + Card card = cardMap.get(cardId); + card.setName(name); + } + + public void showCard(String cardId) { + Card card = cardMap.get(cardId); + card.printSelf(); + } + + public void updateStatus(String boardId, Status status) { + TrelloBoard trelloBoard = boardMap.get(boardId); + trelloBoard.setStatus(status); + } + + public void addUser(TaskUser user) { + taskUsersMap.put(user.getId(), user); + } +} diff --git a/src/main/java/com/gatomalvado/todo/webcrawler/Main.java b/src/main/java/com/gatomalvado/todo/webcrawler/Main.java new file mode 100644 index 0000000..b19ece8 --- /dev/null +++ b/src/main/java/com/gatomalvado/todo/webcrawler/Main.java @@ -0,0 +1,9 @@ +package com.gatomalvado.todo.webcrawler; + +public class Main { + + public static void main(String[] args) { + System.out.println("Hello Simple Webcrawler!"); + } + +}