diff --git a/src/main/java/model/elements/CloudHandler.java b/src/main/java/model/elements/CloudHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..be6d37a9b2d5e02bc7cabd8249fa74b13bc23e89 --- /dev/null +++ b/src/main/java/model/elements/CloudHandler.java @@ -0,0 +1,39 @@ +package model.elements; + +import model.Cloud; +import model.ModelElement; +import util.Position; + +import java.util.*; + +public class CloudHandler implements ElementHandler { + private final List<Cloud> clouds; + private final Map<Position, List<Position>> neighbors; + + public CloudHandler(List<Cloud> clouds, Map<Position, List<Position>> neighbors) { + this.clouds = clouds; + this.neighbors = neighbors; + } + + @Override + public void addElement(Position position) { + clouds.add(new Cloud(position, neighbors)); + } + + @Override + public void removeElement(Position position) { + clouds.removeIf(cloud -> cloud.getPosition().equals(position)); + } + + @Override + public boolean hasElement(Position position) { + return clouds.stream().anyMatch(cloud -> cloud.getPosition().equals(position)); + } + + + @Override + public ModelElement getModelElement() { + return ModelElement.CLOUD; + } +} +