Skip to content
Snippets Groups Projects
Commit 5b2edb32 authored by ousseyn01's avatar ousseyn01
Browse files

TerrainHandler.java is CREATED and DONE

parent 355e07ed
Branches
No related tags found
No related merge requests found
package model.elements;
import model.ModelElement;
import model.TerrainElement;
import util.Position;
import java.util.*;
public class TerrainHandler implements ElementHandler {
private final List<TerrainElement> terrainElements;
private final Class<? extends TerrainElement> terrainType;
private final ModelElement modelElement;
public TerrainHandler(List<TerrainElement> terrainElements,
Class<? extends TerrainElement> terrainType,
ModelElement modelElement) {
this.terrainElements = terrainElements;
this.terrainType = terrainType;
this.modelElement = modelElement;
}
@Override
public void addElement(Position position) {
try {
TerrainElement element = terrainType.getConstructor(Position.class).newInstance(position);
terrainElements.add(element);
} catch (Exception e) {
throw new RuntimeException("Failed to create terrain element", e);
}
}
@Override
public void removeElement(Position position) {
terrainElements.removeIf(element -> element.getPosition().equals(position) && terrainType.isInstance(element));
}
@Override
public boolean hasElement(Position position) {
return terrainElements.stream()
.anyMatch(element -> element.getPosition().equals(position) && terrainType.isInstance(element));
}
@Override
public ModelElement getModelElement() {
return modelElement;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment