Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Board;
- import City;
- import java.util.HashSet;
- import java.util.Map;
- import java.util.Objects;
- import java.util.Set;
- public class BoardClassic implements Board {
- private Set<City> cities;
- private boolean closed;
- public BoardClassic() {
- this.cities = new HashSet<>();
- closed = false;
- }
- @Override
- public City findCity(String name) {
- City result = null;
- for (City currentCity : cities) {
- if (name == currentCity.getName())
- result = currentCity;
- }
- return result;
- }
- @Override
- public void closeRegions(int limit) {
- for (City currentCity : getCities()) {
- if (currentCity.getArea() > limit) {
- for (Map.Entry<City, Integer> connectedCity : currentCity.getConnections().entrySet())
- connectedCity.getKey().getConnections().remove(currentCity);
- getCities().remove(currentCity);
- }
- }
- }
- @Override
- public Set<City> getCities() {
- return cities;
- }
- private void setCities(final Set<City> cities) {
- this.cities = cities;
- }
- private void setClosed(final boolean closed) {
- this.closed = closed;
- }
- @Override
- public void close() {
- if (isClosed())
- throw new IllegalStateException();
- setClosed(true);
- setCities(Set.copyOf(getCities()));
- }
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- BoardClassic that = (BoardClassic) o;
- return getCities().equals(that.getCities());
- }
- @Override
- public int hashCode() {
- return Objects.hash(getCities());
- }
- private boolean isClosed() {
- return closed;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement