Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.89 KB | None | 0 0
  1. public static void main(String[] args) {
  2.  
  3. flights = init();
  4. print(flights);
  5. Collections.sort(flights);
  6. print(flights);
  7. List<Flight> second = filter(flights, new OriginMatcher("VIE"));
  8. Collections.sort(second, new DepartureComparator());
  9. print(second);
  10. System.out.printf("%d",export(flights, "filenamex"));
  11.  
  12. }
  13.  
  14. private static <T> java.util.List<T> filter(java.util.Collection<T> list, Matcher<T> mtch){
  15. List<T> filter = new LinkedList<T>();
  16. for(T t:list) {
  17. if(mtch.match(t))
  18. filter.add(t);
  19. }
  20. return filter;
  21. }
  22.  
  23.  
  24. private static void print(List<Flight> flights) {
  25. System.out.println("--- Listing Flights");
  26. for (Flight f : flights)
  27. System.out.println(f + "\n");
  28. System.out.printf("--- %d flights listed\n\n", flights.size());
  29.  
  30. }
  31.  
  32.  
  33. private static List<Flight> init() {
  34.  
  35. // ---------------- aircrafts
  36. List<Aircraft> crafts = new LinkedList<>();
  37. crafts.add(new Aircraft("A3", 3));
  38. crafts.add(new Aircraft("C4", 4));
  39. crafts.add(new Aircraft("Boeing 737", 175));
  40.  
  41. // ---------------- passengers
  42. List<Passenger> passengers = new LinkedList<>();
  43. passengers.add(new Passenger("John", "Doe", "AT00004711"));
  44. passengers.add(new Passenger("Jane", "Doe", "AT00000815"));
  45. passengers.add(new Passenger("John", "Jackson", "US00004711"));
  46. passengers.add(new Passenger("Jack", "Doe", "UK00000007"));
  47. passengers.add(new Passenger("Jack", "Johnson", "DE00004711"));
  48.  
  49. // ---------------- staff
  50. List<Staff> staff = new LinkedList<>();
  51. staff.add(new Staff("Rip", "Riley", "ISIS666", "Pilot"));
  52. staff.add(new Staff("Cheryl", "Tunt", "ISIS456", "Chef de Cabin"));
  53. staff.add(new Staff("Lana", "Kane", "ISIS001", "Stewardess"));
  54.  
  55. // ---------------- flights
  56. List<Flight> flights = new LinkedList<>();
  57. flights.add(new ScheduledFlight("OS006", "FRA", "VIE", new DateTime(2018, 06, 25, 6, 30),
  58. new DateTime(2018, 06, 25, 8, 55), 800));
  59. flights.add(new Charter("OS001", "VIE", "VIE", new DateTime(2018, 06, 23, 6, 30),
  60. new DateTime(2018, 06, 23, 8, 55)));
  61. flights.add(new Charter("OS381", "ARN", "VIE", new DateTime(2018, 05, 25, 6, 30),
  62. new DateTime(2018, 05, 25, 9, 13)));
  63. flights.add(new Charter("OS001", "VIE", "JFK", new DateTime(2018, 07, 25, 4, 30),
  64. new DateTime(2018, 07, 25, 7, 20)));
  65. flights.add(new Charter("OS502", "JFK", "VIE", new DateTime(2018, 06, 28, 18, 30),
  66. new DateTime(2018, 06, 28, 19, 55)));
  67. flights.add(new ScheduledFlight("OS007", "VIE", "CDG", new DateTime(2018, 06, 28, 21, 00),
  68. new DateTime(2018, 06, 29, 0, 05), 1000));
  69. flights.add(new ScheduledFlight("OS008", "VIE", "CDG", new DateTime(2018, 06, 1, 6, 30),
  70. new DateTime(2018, 06, 1, 8, 05), 1000));
  71.  
  72.  
  73. Flight f;
  74.  
  75. // ---------------- set up flight
  76. f = flights.get(0).setVessel(crafts.get(0));
  77. f.add(staff.get(0));
  78. f.add(staff.get(1));
  79. f.add(staff.get(2));
  80. // list passengers
  81. f.add(passengers.get(0));
  82. f.add(passengers.get(1));
  83. f.add(passengers.get(2));
  84. f.add(passengers.get(3)); //exceeds vessel capacity
  85. // board passengers
  86. f.board(passengers.get(0)); // board listed passengers
  87. f.board(passengers.get(1));
  88. f.board(passengers.get(2));
  89. f.board(passengers.get(3)); // board a passenger not listed
  90.  
  91.  
  92. // ---------------- set up flight
  93. f = flights.get(1).setVessel(crafts.get(1));
  94. f.add(passengers.get(1));
  95. f.add(passengers.get(2));
  96. f.add(passengers.get(3));
  97. f.add(new Staff(passengers.get(0), "Pilot")); //a passenger becomes a pilot
  98. f.board(passengers.get(1)); // already on board another flight
  99. f.board(passengers.get(3)); // board a passenger
  100.  
  101.  
  102.  
  103. // ---------------- set up flight
  104. f = flights.get(2).setVessel(crafts.get(2));
  105. Passenger p = new Passenger(staff.get(0)); //staff becomes a passenger
  106. f.add(passengers.get(2));
  107. f.add(passengers.get(1));
  108. f.add(passengers.get(3));
  109. f.add(p);
  110. f.board(p); //no boarding without crew
  111.  
  112.  
  113. // ---------------- set up flight
  114. f = flights.get(3);
  115. f.add(passengers.get(2));
  116. f.add(passengers.get(1));
  117. f.add(passengers.get(3));
  118.  
  119. return flights;
  120. }
  121.  
  122. }
  123.  
  124. import java.util.Set;
  125. import java.util.TreeSet;
  126.  
  127.  
  128. public abstract class Flight implements Comparable<Flight> {
  129.  
  130. private DateTime arrival;
  131. private java.util.Set<Staff> crew;
  132. private DateTime departure;
  133. private String destination;
  134. private String flightID;
  135. private String origin;
  136. private java.util.Set<Passenger> passengers;
  137. private Aircraft vessel;
  138.  
  139. public Flight(Flight f) {
  140. this.setFlightID(f.flightID);
  141. this.setArrival(new DateTime(arrival));
  142. this.setDeparture(new DateTime(departure));
  143. this.setDestination(f.destination);
  144. this.setOrigin(f.origin);
  145. }
  146.  
  147. public void setDestination(String destination) throws IllegalArgumentException {
  148. if (destination != null && destination != "")
  149. this.destination = destination;
  150. else
  151. throw new IllegalArgumentException("please enter valid destination");
  152. }
  153.  
  154. public abstract int getBonusMiles();
  155.  
  156. public int compareTo(Flight o) {
  157. return this.getFlightID().compareTo(o.getFlightID());
  158. }
  159.  
  160. public boolean add(Staff Staff) {
  161. return crew.add(Staff);
  162. // crew.remove(Staff);
  163. }
  164. public boolean board(Passenger p) {
  165. if(this.readyToBoard()) {
  166. if(this.passengers.contains(p) && p.getBoarded()== null)
  167. return true;
  168. }
  169. return false;
  170. }
  171.  
  172. public boolean readyToBoard() {
  173. if(this.crew.size() > 0)
  174. return true;
  175. else
  176. return false;
  177. }
  178. public boolean boardingCompleted() {
  179.  
  180. if(this.passengers.size()>0) {
  181. boolean check = true;
  182. for(Passenger p:passengers) {
  183. if (p.getBoarded()!=this) {
  184. check = false;
  185. }
  186. }
  187. return check;
  188. }
  189. return false;
  190. }
  191.  
  192. public void setOrigin(String origin) throws IllegalArgumentException {
  193. if (origin != null && origin != "")
  194. this.origin = origin;
  195. else
  196. throw new IllegalArgumentException("please enter valid origin");
  197. }
  198.  
  199.  
  200. public Flight(DateTime arrival, DateTime departure, String destination, String flightID, String origin) {
  201. super();
  202. this.arrival = arrival;
  203. }
  204.  
  205. if(this.distance>0){
  206. this.distance=distance;
  207. }
  208. private final String ensureNonNullNonEmpty(String str) throws IllegalArgumentException {
  209. if (str != null && str != "")
  210. return str;
  211. else {
  212. throw new IllegalArgumentException("Illegal Argument!");
  213. }
  214. }
  215.  
  216. @Override
  217. public String toString() {
  218. return String.format(
  219. "%5s from %3.3S (%s) to %3.3S (%s)" + " with a crew of %d and %d passengers "
  220. + "<%s> boarding%scompleted \n%s\n%s",
  221. flightID, origin, departure, destination, arrival, crew == null ? 0 : crew.size(),
  222. passengers == null ? 0 : passengers.size(), vessel == null ? "no vessel" : vessel.toString(),
  223. boardingCompleted() ? " " : " not ", crew, passengers);
  224. }
  225.  
  226. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement