Exemplo n.º 1
0
  private List<CuriositySegment> parseSegments(Element element) {
    List<CuriositySegment> segments = Lists.newArrayList();
    DateTime flightDate = new DateTime();
    Elements segmentElements = element.select("tbody>tr");
    for (Element segmentElement : segmentElements) {
      if (!segmentElement.select("td.upsellCity").text().equalsIgnoreCase("")
          && segmentElement.select("td.upsellCity").text() != null) {
        CuriositySegment segment = new CuriositySegment();
        String airlineCode = segmentElement.select("td[id~=idUpsellIti]").text();
        String depCode = segmentElement.select("td.upsellCity").get(0).text();
        String arrCode = segmentElement.select("td.upsellCity").get(1).text();
        String depTime = segmentElement.select("td.upsellTime").get(0).text();
        String arrTime = segmentElement.select("td.upsellTime").get(1).text();
        segment.setDepartureName(depCode);
        segment.setArrivalName(arrCode);

        if (depTime.contains("+")) {
          flightDate =
              flightDate.plusDays(
                  Integer.parseInt(
                      depTime.substring(depTime.indexOf("+") + 1, depTime.indexOf("+") + 2)));
          depTime = depTime.substring(0, (depTime.indexOf("+") - 1));
        }
        segment.setDepartureTime(
            PARSER_DATE_TIME_FORMATTER, DATE_TIME_FORMATTER.print(flightDate) + depTime);
        if (arrTime.contains("+")) {
          flightDate =
              flightDate.plusDays(
                  Integer.parseInt(
                      arrTime.substring(arrTime.indexOf("+") + 1, arrTime.indexOf("+") + 2)));
          arrTime = arrTime.substring(0, (arrTime.indexOf("+") - 1));
        }

        segment.setArrivalTime(
            PARSER_DATE_TIME_FORMATTER, DATE_TIME_FORMATTER.print(flightDate) + arrTime);
        segment.setAirlineCode(airlineCode.substring(0, 2));
        segment.setFlightNumber(airlineCode.substring(2));
        segments.add(segment);
      }
    }
    return segments;
  }