From cc7552da30ed5725528e8b51b0afce40ed68815a Mon Sep 17 00:00:00 2001 From: davi-bart Date: Fri, 16 Feb 2024 17:52:47 +0100 Subject: [PATCH] add getRoadOwner method --- .../java/it/unibo/controller/board/BoardController.java | 6 ++++++ .../java/it/unibo/controller/board/BoardControllerImpl.java | 5 +++++ src/main/java/it/unibo/model/road/RoadManager.java | 6 ++++++ src/main/java/it/unibo/model/road/RoadManagerImpl.java | 5 +++++ 4 files changed, 22 insertions(+) diff --git a/src/main/java/it/unibo/controller/board/BoardController.java b/src/main/java/it/unibo/controller/board/BoardController.java index 8d2319f..f0b01a3 100644 --- a/src/main/java/it/unibo/controller/board/BoardController.java +++ b/src/main/java/it/unibo/controller/board/BoardController.java @@ -83,4 +83,10 @@ public interface BoardController { * @return the name of the owner of the property at the given position */ Optional getPropertyOwner(PropertyPosition position); + + /** + * @param position the position of the road + * @return the owner of the road at the given position + */ + Optional getRoadOwner(RoadPosition position); } diff --git a/src/main/java/it/unibo/controller/board/BoardControllerImpl.java b/src/main/java/it/unibo/controller/board/BoardControllerImpl.java index 2fea521..60d60cd 100644 --- a/src/main/java/it/unibo/controller/board/BoardControllerImpl.java +++ b/src/main/java/it/unibo/controller/board/BoardControllerImpl.java @@ -100,4 +100,9 @@ public void setRobberPosition(final TilePosition coordinates) { public Optional getPropertyOwner(PropertyPosition position) { return this.propertyManager.getPropertyOwner(position).map(Player::getName); } + + @Override + public Optional getRoadOwner(RoadPosition position) { + return this.roadManager.getRoadOwner(position).map(Player::getName); + } } diff --git a/src/main/java/it/unibo/model/road/RoadManager.java b/src/main/java/it/unibo/model/road/RoadManager.java index 7169913..c2ce348 100644 --- a/src/main/java/it/unibo/model/road/RoadManager.java +++ b/src/main/java/it/unibo/model/road/RoadManager.java @@ -46,4 +46,10 @@ public interface RoadManager { */ Optional getLongestRoadOwner(); + /** + * @param position the position of the road + * @return the owner of the road at the given position + */ + Optional getRoadOwner(RoadPosition position); + } diff --git a/src/main/java/it/unibo/model/road/RoadManagerImpl.java b/src/main/java/it/unibo/model/road/RoadManagerImpl.java index 2aced9d..fc11b59 100644 --- a/src/main/java/it/unibo/model/road/RoadManagerImpl.java +++ b/src/main/java/it/unibo/model/road/RoadManagerImpl.java @@ -104,4 +104,9 @@ && getLongestRoadLength(player) > getLongestRoadLength(longestRoadOwner.get()))) } } + @Override + public Optional getRoadOwner(RoadPosition position) { + return roads.stream().filter(r -> r.getPosition().equals(position)).findFirst().map(r -> r.getOwner()); + } + }