Advertisement
Guest User

Untitled

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