diff --git a/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/data/FlightDao.java b/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/data/FlightDao.java index 17ee14cb9..f980891cb 100644 --- a/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/data/FlightDao.java +++ b/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/data/FlightDao.java @@ -1,6 +1,6 @@ package com.bobocode.flight_search.data; -import com.bobocode.util.ExerciseNotCompletedException; +import com.bobocode.flight_search.service.Flights; import java.util.HashSet; import java.util.Set; @@ -12,7 +12,7 @@ * todo: 1. Implement a method {@link FlightDao#register(String)} that store new flight number into the set * todo: 2. Implement a method {@link FlightDao#findAll()} that returns a set of all flight numbers */ -public class FlightDao { +public class FlightDao implements Flights { private Set flights = new HashSet<>(); /** @@ -22,7 +22,7 @@ public class FlightDao { * @return {@code true} if a flight number was stored, {@code false} otherwise */ public boolean register(String flightNumber) { - throw new ExerciseNotCompletedException();// todo: implement this method + return flights.add(flightNumber); } /** @@ -31,7 +31,6 @@ public boolean register(String flightNumber) { * @return a set of flight numbers */ public Set findAll() { - throw new ExerciseNotCompletedException();// todo: implement this method + return flights; } - } diff --git a/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/factory/FlightServiceFactory.java b/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/factory/FlightServiceFactory.java index d7bac6fad..4ac00cdc5 100644 --- a/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/factory/FlightServiceFactory.java +++ b/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/factory/FlightServiceFactory.java @@ -1,7 +1,7 @@ package com.bobocode.flight_search.factory; +import com.bobocode.flight_search.data.FlightDao; import com.bobocode.flight_search.service.FlightService; -import com.bobocode.util.ExerciseNotCompletedException; /** * {@link FlightServiceFactory} is used to create an instance of {@link FlightService} @@ -16,6 +16,7 @@ public class FlightServiceFactory { * @return FlightService */ public FlightService creteFlightService() { - throw new ExerciseNotCompletedException(); + return new FlightService(new FlightDao()); } } + diff --git a/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/service/FlightService.java b/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/service/FlightService.java index 20a3d79ef..86f3f7d95 100644 --- a/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/service/FlightService.java +++ b/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/service/FlightService.java @@ -1,10 +1,9 @@ package com.bobocode.flight_search.service; -import com.bobocode.flight_search.data.FlightDao; -import com.bobocode.util.ExerciseNotCompletedException; - import java.util.List; +import static java.util.stream.Collectors.toList; + /** * {@link FlightService} provides an API that allows to manage flight numbers *

@@ -13,6 +12,12 @@ */ public class FlightService { + private Flights flights; + + public FlightService(Flights flights) { + this.flights = flights; + } + /** * Adds a new flight number * @@ -20,7 +25,7 @@ public class FlightService { * @return {@code true} if a flight number was added, {@code false} otherwise */ public boolean registerFlight(String flightNumber) { - throw new ExerciseNotCompletedException(); + return flights.register(flightNumber); } /** @@ -30,6 +35,8 @@ public boolean registerFlight(String flightNumber) { * @return a list of found flight numbers */ public List searchFlights(String query) { - throw new ExerciseNotCompletedException(); + return flights.findAll().stream() + .filter(flightNum -> flightNum.toUpperCase().contains(query.toUpperCase())) + .collect(toList()); } } diff --git a/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/service/Flights.java b/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/service/Flights.java new file mode 100644 index 000000000..b6df8ee3c --- /dev/null +++ b/4-0-object-oriented-programming/src/main/java/com/bobocode/flight_search/service/Flights.java @@ -0,0 +1,9 @@ +package com.bobocode.flight_search.service; + +import java.util.Set; + +public interface Flights { + boolean register(String flightNumber); + + Set findAll(); +}