@Override public void setFlightMap(List<Flight> flightList, String fileStatus) { String key, flightClass; for (Flight flight : flightList) { flightClass = flight.getFlightClass(); for (int traverseflightClass = 0; traverseflightClass < flightClass.length(); traverseflightClass++) { key = flight.getDepLoc() + "," + flight.getArrLoc() + "," + flightClass.charAt(traverseflightClass); if (flightMap.containsKey(key)) { if (fileStatus.equalsIgnoreCase(FileConstants.OLD_FILE)) { if (!compareFlightObject(flightMap.get(key), flight)) { flightMap.get(key).add(flight); } } else { flightMap.get(key).add(flight); } } else { List<Flight> list = new ArrayList<>(); list.add(flight); flightMap.put(key, list); } } } }
@Override public List<Flight> getFlightList(String key, Date date) { List<Flight> availableFlights = new ArrayList<>(); if (flightMap.containsKey(key)) { for (Flight flight : flightMap.get(key)) { if ((flight.getValidTill().compareTo(date) >= 0) && flight.getSeatAvailable().equalsIgnoreCase("Y")) { availableFlights.add(flight); } } } return availableFlights; }
/** * Compare flight object. * * @param flight the flight * @param o2 the o2 * @return true, if successful */ private boolean compareFlightObject(List<Flight> flight, Flight o2) { boolean valid = false; for (Flight f : flight) { if (f.getFlightNo().equals(o2.getFlightNo()) && f.getFlightTime().equals(o2.getFlightTime()) && f.getFlightClass().equals(o2.getFlightClass())) { valid = true; break; } } return valid; }