示例#1
0
  /**
   * Method used for posting on the servlet
   *
   * @param request comes from the client
   * @param response gives to the client
   * @throws ServletException
   * @throws IOException
   */
  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/plain");

    String name = getParameter("name", request);
    if (name == null) {
      missingRequiredParameter(response, "name");
      return;
    }

    String flightNumber = getParameter("flightNumber", request);
    if (flightNumber == null) {
      missingRequiredParameter(response, "flight number");
      return;
    }

    String src = getParameter("src", request);
    if (src == null) {
      missingRequiredParameter(response, "source airport");
      return;
    }

    String departTime = getParameter("departTime", request);

    String[] departArray = departTime.split(" ");
    if (departTime == null) {
      missingRequiredParameter(response, "departure time");
      return;
    }

    String dest = getParameter("dest", request);
    if (dest == null) {
      missingRequiredParameter(response, "destination airport");
      return;
    }

    String arrivalTime = getParameter("arrivalTime", request);
    String[] arrivalArray = arrivalTime.split(" ");
    if (arrivalTime == null) {
      missingRequiredParameter(response, "arrival time");
      return;
    }

    String[] args = {
      name,
      flightNumber,
      src,
      departArray[0],
      departArray[1],
      departArray[2],
      dest,
      arrivalArray[0],
      arrivalArray[1],
      arrivalArray[2]
    };
    Flight flight = Flight.getFlightFromArgs(args);

    if (this.data.containsKey(name)) {
      Airline airline1 = this.data.get(name);

      for (Object flight1 : this.data.get(name).getFlights()) {
        Flight flights2 = (Flight) flight1;
        if (flights2.getFlightNumber().equals(flight.getFlightNumber())) {
          System.out.println("This Flight number exists");
          return;
        }
      }
      airline1.addFlight(flight);
      this.data.replace(name, airline1);
      System.out.println("added flight to existing airline");
    }

    if (!this.data.containsKey(name)) {
      Airline airline = new Airline(name);
      airline.addFlight(flight);
      this.data.put(name, airline);
      System.out.println("Created a new flight");
    }

    PrintWriter pw = response.getWriter();
    pw.println("added");
    pw.flush();

    response.setStatus(HttpServletResponse.SC_OK);
  }