Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1.  
  2. import Board;
  3. import City;
  4.  
  5. import java.util.HashSet;
  6. import java.util.Map;
  7. import java.util.Objects;
  8. import java.util.Set;
  9.  
  10. public class BoardClassic implements Board {
  11. private Set<City> cities;
  12. private boolean closed;
  13.  
  14. public BoardClassic() {
  15. this.cities = new HashSet<>();
  16. closed = false;
  17. }
  18.  
  19. @Override
  20. public City findCity(String name) {
  21. City result = null;
  22. for (City currentCity : cities) {
  23. if (name == currentCity.getName())
  24. result = currentCity;
  25. }
  26. return result;
  27. }
  28.  
  29. @Override
  30. public void closeRegions(int limit) {
  31. for (City currentCity : getCities()) {
  32. if (currentCity.getArea() > limit) {
  33. for (Map.Entry<City, Integer> connectedCity : currentCity.getConnections().entrySet())
  34. connectedCity.getKey().getConnections().remove(currentCity);
  35. getCities().remove(currentCity);
  36. }
  37. }
  38. }
  39.  
  40. @Override
  41. public Set<City> getCities() {
  42. return cities;
  43. }
  44.  
  45. private void setCities(final Set<City> cities) {
  46. this.cities = cities;
  47. }
  48.  
  49. private void setClosed(final boolean closed) {
  50. this.closed = closed;
  51. }
  52.  
  53. @Override
  54. public void close() {
  55. if (isClosed())
  56. throw new IllegalStateException();
  57. setClosed(true);
  58. setCities(Set.copyOf(getCities()));
  59. }
  60.  
  61. @Override
  62. public boolean equals(Object o) {
  63. if (this == o) return true;
  64. if (o == null || getClass() != o.getClass()) return false;
  65. BoardClassic that = (BoardClassic) o;
  66. return getCities().equals(that.getCities());
  67. }
  68.  
  69. @Override
  70. public int hashCode() {
  71. return Objects.hash(getCities());
  72. }
  73.  
  74. private boolean isClosed() {
  75. return closed;
  76. }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement