You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.4 KiB
42 lines
1.4 KiB
package hs.fulda.de.ci.exam.project;
|
|
|
|
import java.util.Collection;
|
|
import java.util.Date;
|
|
import java.util.Map;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
public class FrontDeskOfficer extends Person{
|
|
|
|
Map<String, Itinerary> itineraryList = new ConcurrentHashMap<String, Itinerary>();
|
|
|
|
public FrontDeskOfficer(String name, Address address, String email, String phone) {
|
|
super(name, address, email, phone);
|
|
}
|
|
|
|
public void createItinerary(Airport start_airport, Airport final_airport, Date date){
|
|
Itinerary itinerary = new Itinerary(start_airport, final_airport, date);
|
|
validateItinerary(itinerary);
|
|
checkIfItineraryAlreadyExist(itinerary);
|
|
itineraryList.put(generateKey(itinerary), itinerary);
|
|
}
|
|
|
|
public Collection<Itinerary> getAllItineraries() {
|
|
return itineraryList.values();
|
|
}
|
|
|
|
private void checkIfItineraryAlreadyExist(Itinerary itinerary){
|
|
if(itineraryList.containsKey(generateKey(itinerary))){
|
|
throw new RuntimeException("Itinerary Already Exists");
|
|
}
|
|
}
|
|
|
|
private String generateKey(Itinerary itinerary) {
|
|
return String.format("%s-%s", itinerary.getStart_airport(), itinerary.getFinal_airport());
|
|
}
|
|
|
|
public void validateItinerary(Itinerary itinerary){
|
|
itinerary.validateStartAirport();
|
|
itinerary.validateFinalAirport();
|
|
itinerary.validateCreationDate();
|
|
}
|
|
}
|