/** Populates the flight extra content */
  @Override
  public void populate(final Object source, final ContentViewData target) {
    // REVISIT:Changed to BasePackage
    final BasePackage packageModel = packageCartService.getBasePackage();
    final FlightExtraFacilityStore flightExtraStore =
        sessionService.getAttribute(SessionObjectKeys.FLIGHT_EXTRA_FACILITY_STORE);
    String flightMealCode = StringUtils.EMPTY;
    if (flightExtraStore != null) {
      String inventoryCode = StringUtils.EMPTY;
      final Map<String, List<ExtraFacility>> validExtraFacilitiesMap =
          flightExtraStore.getExtraFacilityFromAllLegsBasedOnCabinClass(
              packageModel.getId(), PackageUtilityService.getCabinClass(packageModel));
      for (final List<ExtraFacility> eachEntry : validExtraFacilitiesMap.values()) {
        inventoryCode = eachEntry.get(0).getExtraFacilityCategory().getInventoryCode();
        final String extraCode = eachEntry.get(0).getExtraFacilityCode();
        final String corporateCode = eachEntry.get(0).getCorporateCode();
        final List<DynamicContentConfigModel> dynamicContents =
            genericContentService.getDynamicContentConfig(inventoryCode, extraCode, corporateCode);

        getDynamicContents(target, dynamicContents);
      }
      if (StringUtils.equalsIgnoreCase(inventoryCode, "FM")) {
        flightMealCode = inventoryCode;
      }

      final Leg leg = getFlightLeg(packageModel);
      populateContentForShortHaul(target, leg);
      populateMealContent(flightMealCode, target);
    }
  }