Search in sources :

Example 96 with DataHandler

use of javax.activation.DataHandler in project quickstarts by jboss-switchyard.

the class FlightCustomerInfoMessageComposer method compose.

@Override
public Message compose(CamelBindingData source, Exchange exchange) throws Exception {
    Message response = exchange.createMessage();
    // map context properties
    getContextMapper().mapFrom(source, exchange.getContext(response));
    Set<String> attachements = source.getMessage().getAttachmentNames();
    if (!attachements.isEmpty()) {
        for (Entry<String, DataHandler> entry : source.getMessage().getAttachments().entrySet()) {
            response.addAttachment(entry.getKey(), entry.getValue().getDataSource());
        }
    }
    // Retrieve SAP response object from body of exchange message.
    Structure flightCustomerGetListResponse = source.getMessage().getBody(Structure.class);
    if (flightCustomerGetListResponse == null) {
        throw new Exception("No Flight Customer Get List Response");
    }
    // Check BAPI return parameter for errors 
    @SuppressWarnings("unchecked") Table<Structure> bapiReturn = flightCustomerGetListResponse.get("RETURN", Table.class);
    Structure bapiReturnEntry = bapiReturn.get(0);
    if (!bapiReturnEntry.get("TYPE", String.class).equals("S")) {
        String message = bapiReturnEntry.get("MESSAGE", String.class);
        throw new Exception("BAPI call failed: " + message);
    }
    // Get customer list table from response object.
    @SuppressWarnings("unchecked") Table<? extends Structure> customerList = flightCustomerGetListResponse.get("CUSTOMER_LIST", Table.class);
    if (customerList == null || customerList.size() == 0) {
        throw new Exception("No Customer Info.");
    }
    // Get Flight Customer data from first row of table.
    Structure customer = customerList.get(0);
    // Create bean to hold Flight Customer data.
    FlightCustomerInfo flightCustomerInfo = new FlightCustomerInfo();
    // Get customer id from Flight Customer data and add to bean.
    String customerId = customer.get("CUSTOMERID", String.class);
    if (customerId != null) {
        flightCustomerInfo.setCustomerNumber(customerId);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Set customer number = '{}' in flight customer info", customerId);
        }
    }
    // Get customer name from Flight Customer data and add to bean.
    String customerName = customer.get("CUSTNAME", String.class);
    if (customerName != null) {
        flightCustomerInfo.setName(customerName);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Set customer name = '{}' in flight customer info", customerName);
        }
    }
    // Get customer form of address from Flight Customer data and add to bean.
    String formOfAddress = customer.get("FORM", String.class);
    if (formOfAddress != null) {
        flightCustomerInfo.setFormOfAddress(formOfAddress);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Set form of address = '{}' in flight customer info", formOfAddress);
        }
    }
    // Get customer street name from Flight Customer data and add to bean.
    String street = customer.get("STREET", String.class);
    if (street != null) {
        flightCustomerInfo.setStreet(street);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Set street = '{}' in flight customer info", street);
        }
    }
    // Get customer PO box from Flight Customer data and add to bean.
    String poBox = customer.get("POBOX", String.class);
    if (poBox != null) {
        flightCustomerInfo.setPoBox(poBox);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Set PO box = '{}' in flight customer info", poBox);
        }
    }
    // Get customer postal code from Flight Customer data and add to bean.
    String postalCode = customer.get("POSTCODE", String.class);
    if (postalCode != null) {
        flightCustomerInfo.setPostalCode(postalCode);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Set postal code = '{}' in flight customer info", postalCode);
        }
    }
    // Get customer city name from Flight Customer data and add to bean.
    String city = customer.get("CITY", String.class);
    if (city != null) {
        flightCustomerInfo.setCity(city);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Set city = '{}' in flight customer info", city);
        }
    }
    // Get customer country name from Flight Customer data and add to bean.
    String country = customer.get("COUNTR", String.class);
    if (country != null) {
        flightCustomerInfo.setCountry(country);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Set country = '{}' in flight customer info", country);
        }
    }
    // Get customer country ISO code from Flight Customer data and add to bean.
    String countryIso = customer.get("COUNTR_ISO", String.class);
    if (countryIso != null) {
        flightCustomerInfo.setCountryIso(countryIso);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Set iso country code = '{}' in flight customer info", countryIso);
        }
    }
    // Get customer region name from Flight Customer data and add to bean.
    String region = customer.get("REGION", String.class);
    if (region != null) {
        flightCustomerInfo.setRegion(region);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Set region = '{}' in flight customer info", region);
        }
    }
    // Get customer phone number from Flight Customer data and add to bean.
    String phone = customer.get("PHONE", String.class);
    if (phone != null) {
        flightCustomerInfo.setPhone(phone);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Set phone = '{}' in flight customer info", phone);
        }
    }
    // Get customer email from Flight Customer data and add to bean.
    String email = customer.get("EMAIL", String.class);
    if (email != null) {
        flightCustomerInfo.setEmail(email);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Set email = '{}' in flight customer info", email);
        }
    }
    // Put flight customer info bean
    response.setContent(flightCustomerInfo);
    return response;
}
Also used : Message(org.switchyard.Message) DataHandler(javax.activation.DataHandler) Structure(org.fusesource.camel.component.sap.model.rfc.Structure) FlightCustomerInfo(org.switchyard.quickstarts.camel.sap.binding.bean.FlightCustomerInfo)

Example 97 with DataHandler

use of javax.activation.DataHandler in project quickstarts by jboss-switchyard.

the class GetFlightConnectionDetailMessageComposer method compose.

@Override
public Message compose(CamelBindingData source, Exchange exchange) throws Exception {
    Message response = exchange.createMessage();
    // map context properties
    getContextMapper().mapFrom(source, exchange.getContext(response));
    Set<String> attachements = source.getMessage().getAttachmentNames();
    if (!attachements.isEmpty()) {
        for (Entry<String, DataHandler> entry : source.getMessage().getAttachments().entrySet()) {
            response.addAttachment(entry.getKey(), entry.getValue().getDataSource());
        }
    }
    Structure flightConnectionGetDetailResponse = source.getMessage().getBody(Structure.class);
    if (flightConnectionGetDetailResponse == null) {
        throw new Exception("No Flight Connection Get Detail Response");
    }
    // Create flight connection info bean.
    FlightConnectionInfo flightConnectionInfo = new FlightConnectionInfo();
    //
    // Add connection data to flight connection info bean.
    // 
    Structure connectionData = flightConnectionGetDetailResponse.get("CONNECTION_DATA", Structure.class);
    if (connectionData != null) {
        // Add travel agency number to flight connection info if set.
        String travelAgencyNumber = connectionData.get("AGENCYNUM", String.class);
        if (travelAgencyNumber != null) {
            flightConnectionInfo.setTravelAgencyNumber(travelAgencyNumber);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set travel agency number = '{}' in flight connection info", travelAgencyNumber);
            }
        }
        // Add flight connection number to flight connection info if set.
        String flightConnectionNumber = connectionData.get("FLIGHTCONN", String.class);
        if (flightConnectionNumber != null) {
            flightConnectionInfo.setFlightConnectionNumber(flightConnectionNumber);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set flight connection number = '{}' in flight connection info", flightConnectionNumber);
            }
        }
        // Add departure date to flight connection info if set.
        Date departureDate = connectionData.get("FLIGHTDATE", Date.class);
        if (departureDate != null) {
            flightConnectionInfo.setDepartureDate(departureDate);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set depature date = '{}' in flight connection info", departureDate);
            }
        }
        // Add departure airport to flight connection info if set.
        String departureAirport = connectionData.get("AIRPORTFR", String.class);
        if (departureAirport != null) {
            flightConnectionInfo.setDepartureAirport(departureAirport);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set departure airport = '{}' in flight connection info", departureAirport);
            }
        }
        // Add departure city to flight connection info if set.
        String departureCity = connectionData.get("CITYFROM", String.class);
        if (departureCity != null) {
            flightConnectionInfo.setDepartureCity(departureCity);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set departure city = '{}' in flight connection info", departureCity);
            }
        }
        // Add arrival airport to flight connection info if set.
        String arrivalAirport = connectionData.get("AIRPORTTO", String.class);
        if (arrivalAirport != null) {
            flightConnectionInfo.setArrivalAirport(arrivalAirport);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set arrival airport = '{}' in flight connection info", arrivalAirport);
            }
        }
        // Add arrival city to flight connection info if set.
        String arrivalCity = connectionData.get("CITYTO", String.class);
        if (arrivalCity != null) {
            flightConnectionInfo.setArrivalCity(arrivalCity);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set arrival city = '{}' in flight connection info", arrivalCity);
            }
        }
        // Add number of hops to flight connection info if set.
        String numberOfHops = connectionData.get("NUMHOPS", String.class);
        if (numberOfHops != null) {
            flightConnectionInfo.setNumberOfHops(numberOfHops);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set number of hops = '{}' in flight connection info", numberOfHops);
            }
        }
        // Add departure time to flight connection info if set.
        Date departureTime = connectionData.get("DEPTIME", Date.class);
        if (departureTime != null) {
            flightConnectionInfo.setDepartureTime(departureTime);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set departure time = '{}' in flight connection info", departureTime);
            }
        }
        // Add arrival time to flight connection info if set.
        Date arrivalTime = connectionData.get("ARRTIME", Date.class);
        if (arrivalTime != null) {
            flightConnectionInfo.setArrivalTime(arrivalTime);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set arrival time = '{}' in flight connection info", arrivalTime);
            }
        }
        // Add arrival date to flight connection info if set.
        Date arrivalDate = connectionData.get("ARRDATE", Date.class);
        if (arrivalDate != null) {
            flightConnectionInfo.setArrivalDate(arrivalDate);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set arrival date = '{}' in flight connection info", arrivalDate);
            }
        }
        // Add flight time to flight connection info if set.
        Integer flightTime = connectionData.get("FLIGHTTIME", Integer.class);
        if (flightTime != null) {
            flightConnectionInfo.setFlightTime(flightTime.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set flight time = '{}' in flight connection info", flightTime);
            }
        }
    }
    //
    // Add flight hop list to flight connection info bean.
    // 
    @SuppressWarnings("unchecked") Table<Structure> hopList = flightConnectionGetDetailResponse.get("FLIGHT_HOP_LIST", Table.class);
    List<FlightHop> flightHopList = new ArrayList<FlightHop>();
    for (Structure hop : hopList) {
        // Create flight hop object.
        FlightHop flightHop = new FlightHop();
        // Add hop number to flight hop if set.
        String hopNumber = hop.get("HOP", String.class);
        if (hopNumber != null) {
            flightHop.setHopNumber(hopNumber);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set hop number = '{}' in flight hop", hopNumber);
            }
        }
        // Add airline code to flight hop if set.
        String airlineCode = hop.get("AIRLINEID", String.class);
        if (airlineCode != null) {
            flightHop.setAirlineCode(airlineCode);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set airline code = '{}' in flight hop", airlineCode);
            }
        }
        // Add airline name to flight hop if set.
        String airlineName = hop.get("AIRLINE", String.class);
        if (airlineName != null) {
            flightHop.setAirlineName(airlineName);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set airline name = '{}' in flight hop", airlineName);
            }
        }
        // Add flight connection number to flight hop if set.
        String flightConnectionNumber = hop.get("CONNECTID", String.class);
        if (flightConnectionNumber != null) {
            flightHop.setFlightConnectionNumber(flightConnectionNumber);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set flight connection number = '{}' in flight hop", flightConnectionNumber);
            }
        }
        // Add departure airport to flight hop if set.
        String depatureAirport = hop.get("AIRPORTFR", String.class);
        if (depatureAirport != null) {
            flightHop.setDepatureAirport(depatureAirport);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set departure airport = '{}' in flight hop", depatureAirport);
            }
        }
        // Add departure city to flight hop if set.
        String depatureCity = hop.get("CITYFROM", String.class);
        if (depatureCity != null) {
            flightHop.setDepatureCity(depatureCity);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set departure city = '{}' in flight hop", depatureCity);
            }
        }
        // Add departure country to flight hop if set.
        String departureCountry = hop.get("CTRYFR", String.class);
        if (departureCountry != null) {
            flightHop.setDepartureCountry(departureCountry);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set departure country = '{}' in flight hop", departureCountry);
            }
        }
        // Add departure country code to flight hop if set.
        String departureCountryIso = hop.get("CTRYFR_ISO", String.class);
        if (departureCountryIso != null) {
            flightHop.setDepartureCountryIso(departureCountryIso);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set departure iso country code = '{}' in flight hop", departureCountryIso);
            }
        }
        // Add arrival airport to flight hop if set.
        String arrivalAirport = hop.get("AIRPORTTO", String.class);
        if (arrivalAirport != null) {
            flightHop.setArrivalAirport(arrivalAirport);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set arrival airport = '{}' in flight hop", arrivalAirport);
            }
        }
        // Add arrival city to flight hop if set.
        String arrivalCity = hop.get("CITYTO", String.class);
        if (arrivalCity != null) {
            flightHop.setArrivalCity(arrivalCity);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set arrival city = '{}' in flight hop", arrivalCity);
            }
        }
        // Add arrival country to flight hop if set.
        String arrivalCountry = hop.get("CTRYTO", String.class);
        if (arrivalCountry != null) {
            flightHop.setArrivalCountry(arrivalCountry);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set arrival country = '{}' in flight hop", arrivalCountry);
            }
        }
        // Add arrival country code to flight hop if set.
        String arrivalCountryIso = hop.get("CTRYTO_ISO", String.class);
        if (arrivalCountryIso != null) {
            flightHop.setArrivalCountryIso(arrivalCountryIso);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set arrival iso country code = '{}' in flight hop", arrivalCountryIso);
            }
        }
        // Add departure date to flight hop if set.
        Date departureDate = hop.get("DEPDATE", Date.class);
        if (departureDate != null) {
            flightHop.setDepatureDate(departureDate);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set departure date = '{}' in flight hop", departureDate);
            }
        }
        // Add departure time to flight hop if set.
        Date departureTime = hop.get("DEPTIME", Date.class);
        if (departureTime != null) {
            flightHop.setDepatureTime(departureTime);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set departure time = '{}' in flight hop", departureTime);
            }
        }
        // Add arrival date to flight hop if set.
        Date arrivalDate = hop.get("ARRDATE", Date.class);
        if (arrivalDate != null) {
            flightHop.setArrivalDate(arrivalDate);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set arrival date = '{}' in flight hop", arrivalDate);
            }
        }
        // Add arrival time to flight hop if set.
        Date arrivalTime = hop.get("ARRTIME", Date.class);
        if (arrivalTime != null) {
            flightHop.setArrivalTime(arrivalTime);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set arrival time = '{}' in flight hop", arrivalTime);
            }
        }
        // Add aircraft type to flight hop if set.
        String aircraftType = hop.get("PLANETYPE", String.class);
        if (aircraftType != null) {
            flightHop.setAircraftType(aircraftType);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set aircraft type = '{}' in flight hop", aircraftType);
            }
        }
        // Add flight hop
        flightHopList.add(flightHop);
    }
    // Add flight hop list to flight connection info.
    flightConnectionInfo.setFlightHopList(flightHopList);
    //
    // Add availability list to flight connection info bean.
    // 
    @SuppressWarnings("unchecked") Table<Structure> availibilityList = flightConnectionGetDetailResponse.get("AVAILIBILITY", Table.class);
    List<SeatAvailibility> seatAvailiblityList = new ArrayList<SeatAvailibility>();
    for (Structure availibility : availibilityList) {
        // Create seat availability object.
        SeatAvailibility seatAvailiblity = new SeatAvailibility();
        // Add hop number to availability if set.
        String hopNumber = availibility.get("HOP", String.class);
        if (hopNumber != null) {
            seatAvailiblity.setHopNumber(hopNumber);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set hop number = '{}' in seat availibility", hopNumber);
            }
        }
        // Add economy class seat capacity to availability if set.
        Integer economyClassSeatCapacity = availibility.get("ECONOMAX", Integer.class);
        if (economyClassSeatCapacity != null) {
            seatAvailiblity.setEconomyClassSeatCapacity(economyClassSeatCapacity.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set economy class seat capacity = '{}' in seat availibility", economyClassSeatCapacity);
            }
        }
        // Add economy class free seats to availability if set.
        Integer economyClassFreeSeats = availibility.get("ECONOFREE", Integer.class);
        if (economyClassFreeSeats != null) {
            seatAvailiblity.setEconomyClassFreeSeats(economyClassFreeSeats.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set economy class free seats = '{}' in seat availibility", economyClassFreeSeats);
            }
        }
        // Add business class seat capacity to availability if set.
        Integer businessClassSeatCapacity = availibility.get("BUSINMAX", Integer.class);
        if (businessClassSeatCapacity != null) {
            seatAvailiblity.setBusinessClassSeatCapacity(businessClassSeatCapacity.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set business class seat capacity = '{}' in seat availibility", businessClassSeatCapacity);
            }
        }
        // Add business class free seats to availability if set.
        Integer businessClassFreeSeats = availibility.get("BUSINFREE", Integer.class);
        if (businessClassFreeSeats != null) {
            seatAvailiblity.setBusinessClassFreeSeats(businessClassFreeSeats.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set business class free seats = '{}' in seat availibility", businessClassFreeSeats);
            }
        }
        // Add first class seat capacity to availability if set.
        Integer firstClassClassSeatCapacity = availibility.get("FIRSTMAX", Integer.class);
        if (firstClassClassSeatCapacity != null) {
            seatAvailiblity.setFirstClassClassSeatCapacity(firstClassClassSeatCapacity.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set first class seat capacity = '{}' in seat availibility", firstClassClassSeatCapacity);
            }
        }
        // Add first class free seats to availability if set.
        Integer firstClassFreeSeats = availibility.get("FIRSTFREE", Integer.class);
        if (firstClassFreeSeats != null) {
            seatAvailiblity.setFirstClassFreeSeats(firstClassFreeSeats.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set first class free seats = '{}' in seat availibility", firstClassFreeSeats);
            }
        }
        // Add availability to list.
        seatAvailiblityList.add(seatAvailiblity);
    }
    // Add availability list to flight connection info.
    flightConnectionInfo.setSeatAvailibilityList(seatAvailiblityList);
    //
    // Add price info to flight connection info bean.
    // 
    Structure prices = (Structure) flightConnectionGetDetailResponse.get("PRICE_INFO", Structure.class);
    if (prices != null) {
        // Create price info object.
        PriceInfo priceInfo = new PriceInfo();
        // Add economy class airfare to availability if set.
        BigDecimal economyClassAirfare = prices.get("PRICE_ECO1", BigDecimal.class);
        if (economyClassAirfare != null) {
            priceInfo.setEconomyClassAirfare(economyClassAirfare.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set economy class airfare = '{}' in seat availibility", economyClassAirfare);
            }
        }
        // Add economy class child airfare to availability if set.
        BigDecimal economyClassChildAirfare = prices.get("PRICE_ECO2", BigDecimal.class);
        if (economyClassChildAirfare != null) {
            priceInfo.setEconomyClassChildAirfare(economyClassChildAirfare.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set economy class child airfare = '{}' in seat availibility", economyClassChildAirfare);
            }
        }
        // Add economy class small child airfare to availability if set.
        BigDecimal economyClassSmallChildAirfare = prices.get("PRICE_ECO3", BigDecimal.class);
        if (economyClassSmallChildAirfare != null) {
            priceInfo.setEconomyClassSmallChildAirfare(economyClassSmallChildAirfare.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set economy class small child airfare = '{}' in seat availibility", economyClassSmallChildAirfare);
            }
        }
        // Add business class airfare to availability if set.
        BigDecimal businessClassAirfare = prices.get("PRICE_BUS1", BigDecimal.class);
        if (businessClassAirfare != null) {
            priceInfo.setBusinessClassAirfare(businessClassAirfare.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set business class airfare = '{}' in seat availibility", businessClassAirfare);
            }
        }
        // Add business class child airfare to availability if set.
        BigDecimal businessClassChildAirfare = prices.get("PRICE_BUS2", BigDecimal.class);
        if (businessClassChildAirfare != null) {
            priceInfo.setBusinessClassChildAirfare(businessClassChildAirfare.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set business class child airfare = '{}' in seat availibility", businessClassChildAirfare);
            }
        }
        // Add business class small child airfare to availability if set.
        BigDecimal businessClassSmallChildAirfare = prices.get("PRICE_BUS3", BigDecimal.class);
        if (businessClassSmallChildAirfare != null) {
            priceInfo.setBusinessClassSmallChildAirfare(businessClassSmallChildAirfare.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set business class small child airfare = '{}' in seat availibility", businessClassSmallChildAirfare);
            }
        }
        // Add first class airfare to availability if set.
        BigDecimal firstClassAirfare = prices.get("PRICE_FST1", BigDecimal.class);
        if (firstClassAirfare != null) {
            priceInfo.setBusinessClassAirfare(firstClassAirfare.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set first class airfare = '{}' in seat availibility", firstClassAirfare);
            }
        }
        // Add first class child airfare to availability if set.
        BigDecimal firstClassChildAirfare = prices.get("PRICE_FST2", BigDecimal.class);
        if (firstClassChildAirfare != null) {
            priceInfo.setBusinessClassChildAirfare(firstClassChildAirfare.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set first class child airfare = '{}' in seat availibility", firstClassChildAirfare);
            }
        }
        // Add first class child airfare to availability if set.
        BigDecimal firstClassSmallChildAirfare = prices.get("PRICE_FST3", BigDecimal.class);
        if (firstClassSmallChildAirfare != null) {
            priceInfo.setBusinessClassSmallChildAirfare(firstClassSmallChildAirfare.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set first class small child airfare = '{}' in seat availibility", firstClassSmallChildAirfare);
            }
        }
        // Add first class small child airfare to availability if set.
        BigDecimal flightTaxes = prices.get("TAX", BigDecimal.class);
        if (flightTaxes != null) {
            priceInfo.setFlightTaxes(flightTaxes.toString());
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set flight taxes = '{}' in seat availibility", flightTaxes);
            }
        }
        // Add currency type to availability if set.
        String currency = prices.get("CURR", String.class);
        if (currency != null) {
            priceInfo.setCurrency(currency);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set local currency = '{}' in seat availibility", currency);
            }
        }
        // Add currency code to availability if set.
        String currencyIso = prices.get("CURR_ISO", String.class);
        if (currencyIso != null) {
            priceInfo.setCurrencyIso(currencyIso);
            if (LOG.isDebugEnabled()) {
                LOG.debug("Set local currency iso code = '{}' in seat availibility", currencyIso);
            }
        }
        // Add price info.
        flightConnectionInfo.setPriceInfo(priceInfo);
    }
    // Put flight connection info object
    response.setContent(flightConnectionInfo);
    return response;
}
Also used : Message(org.switchyard.Message) ArrayList(java.util.ArrayList) FlightConnectionInfo(org.switchyard.quickstarts.camel.sap.binding.bean.FlightConnectionInfo) DataHandler(javax.activation.DataHandler) Date(java.util.Date) BigDecimal(java.math.BigDecimal) FlightHop(org.switchyard.quickstarts.camel.sap.binding.bean.FlightHop) PriceInfo(org.switchyard.quickstarts.camel.sap.binding.bean.PriceInfo) SeatAvailibility(org.switchyard.quickstarts.camel.sap.binding.bean.SeatAvailibility) Structure(org.fusesource.camel.component.sap.model.rfc.Structure)

Example 98 with DataHandler

use of javax.activation.DataHandler in project jodd by oblac.

the class SendMailSession method createAttachmentBodyPart.

/**
	 * Creates attachment body part. Handles regular and inline attachments.
	 */
protected MimeBodyPart createAttachmentBodyPart(EmailAttachment attachment) throws MessagingException {
    MimeBodyPart attBodyPart = new MimeBodyPart();
    String attachmentName = attachment.getEncodedName();
    if (attachmentName != null) {
        attBodyPart.setFileName(attachmentName);
    }
    attBodyPart.setDataHandler(new DataHandler(attachment.getDataSource()));
    if (attachment.isInline()) {
        attBodyPart.setContentID(StringPool.LEFT_CHEV + attachment.getContentId() + StringPool.RIGHT_CHEV);
        attBodyPart.setDisposition(INLINE);
    }
    return attBodyPart;
}
Also used : DataHandler(javax.activation.DataHandler) MimeBodyPart(javax.mail.internet.MimeBodyPart)

Example 99 with DataHandler

use of javax.activation.DataHandler in project camel by apache.

the class MimeMultipartDataFormat method writeBodyPart.

private void writeBodyPart(byte[] bodyContent, Part part, ContentType contentType) throws MessagingException {
    DataSource ds = new ByteArrayDataSource(bodyContent, contentType.toString());
    part.setDataHandler(new DataHandler(ds));
    part.setHeader(CONTENT_TYPE, contentType.toString());
    if (contentType.match("text/*")) {
        part.setHeader(CONTENT_TRANSFER_ENCODING, "8bit");
    } else if (binaryContent) {
        part.setHeader(CONTENT_TRANSFER_ENCODING, "binary");
    } else {
        part.setHeader(CONTENT_TRANSFER_ENCODING, "base64");
    }
}
Also used : DataHandler(javax.activation.DataHandler) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) DataSource(javax.activation.DataSource)

Example 100 with DataHandler

use of javax.activation.DataHandler in project camel by apache.

the class MimeMultipartDataFormat method unmarshal.

@Override
public Object unmarshal(Exchange exchange, InputStream stream) throws IOException, MessagingException {
    MimeBodyPart mimeMessage;
    String contentType;
    Message camelMessage;
    Object content = null;
    if (headersInline) {
        mimeMessage = new MimeBodyPart(stream);
        camelMessage = exchange.getOut();
        MessageHelper.copyHeaders(exchange.getIn(), camelMessage, true);
        contentType = mimeMessage.getHeader(CONTENT_TYPE, null);
        // write the MIME headers not generated by javamail as Camel headers
        Enumeration<?> headersEnum = mimeMessage.getNonMatchingHeaders(STANDARD_HEADERS);
        while (headersEnum.hasMoreElements()) {
            Object ho = headersEnum.nextElement();
            if (ho instanceof Header) {
                Header header = (Header) ho;
                camelMessage.setHeader(header.getName(), header.getValue());
            }
        }
    } else {
        // check if this a multipart at all. Otherwise do nothing
        contentType = exchange.getIn().getHeader(CONTENT_TYPE, String.class);
        if (contentType == null) {
            return stream;
        }
        try {
            ContentType ct = new ContentType(contentType);
            if (!ct.match("multipart/*")) {
                return stream;
            }
        } catch (ParseException e) {
            LOG.warn("Invalid Content-Type " + contentType + " ignored");
            return stream;
        }
        camelMessage = exchange.getOut();
        MessageHelper.copyHeaders(exchange.getIn(), camelMessage, true);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        IOHelper.copyAndCloseInput(stream, bos);
        InternetHeaders headers = new InternetHeaders();
        extractHeader(CONTENT_TYPE, camelMessage, headers);
        extractHeader(MIME_VERSION, camelMessage, headers);
        mimeMessage = new MimeBodyPart(headers, bos.toByteArray());
        bos.close();
    }
    DataHandler dh;
    try {
        dh = mimeMessage.getDataHandler();
        if (dh != null) {
            content = dh.getContent();
            contentType = dh.getContentType();
        }
    } catch (MessagingException e) {
        LOG.warn("cannot parse message, no unmarshalling done");
    }
    if (content instanceof MimeMultipart) {
        MimeMultipart mp = (MimeMultipart) content;
        content = mp.getBodyPart(0);
        for (int i = 1; i < mp.getCount(); i++) {
            BodyPart bp = mp.getBodyPart(i);
            DefaultAttachment camelAttachment = new DefaultAttachment(bp.getDataHandler());
            @SuppressWarnings("unchecked") Enumeration<Header> headers = bp.getAllHeaders();
            while (headers.hasMoreElements()) {
                Header header = headers.nextElement();
                camelAttachment.addHeader(header.getName(), header.getValue());
            }
            camelMessage.addAttachmentObject(getAttachmentKey(bp), camelAttachment);
        }
    }
    if (content instanceof BodyPart) {
        BodyPart bp = (BodyPart) content;
        camelMessage.setBody(bp.getInputStream());
        contentType = bp.getContentType();
        if (contentType != null && !DEFAULT_CONTENT_TYPE.equals(contentType)) {
            camelMessage.setHeader(CONTENT_TYPE, contentType);
            ContentType ct = new ContentType(contentType);
            String charset = ct.getParameter("charset");
            if (charset != null) {
                camelMessage.setHeader(Exchange.CONTENT_ENCODING, MimeUtility.javaCharset(charset));
            }
        }
    } else {
        // If we find no body part, try to leave the message alone
        LOG.info("no MIME part found");
    }
    return camelMessage;
}
Also used : MimeBodyPart(javax.mail.internet.MimeBodyPart) BodyPart(javax.mail.BodyPart) Message(org.apache.camel.Message) MimeMessage(javax.mail.internet.MimeMessage) ContentType(javax.mail.internet.ContentType) InternetHeaders(javax.mail.internet.InternetHeaders) MessagingException(javax.mail.MessagingException) ByteArrayOutputStream(java.io.ByteArrayOutputStream) DataHandler(javax.activation.DataHandler) Header(javax.mail.Header) MimeMultipart(javax.mail.internet.MimeMultipart) ParseException(javax.mail.internet.ParseException) DefaultAttachment(org.apache.camel.impl.DefaultAttachment) MimeBodyPart(javax.mail.internet.MimeBodyPart)

Aggregations

DataHandler (javax.activation.DataHandler)180 Exchange (org.apache.camel.Exchange)39 MimeBodyPart (javax.mail.internet.MimeBodyPart)38 FileDataSource (javax.activation.FileDataSource)33 Test (org.junit.Test)33 DataSource (javax.activation.DataSource)32 ByteArrayDataSource (javax.mail.util.ByteArrayDataSource)29 IOException (java.io.IOException)27 ByteArrayOutputStream (java.io.ByteArrayOutputStream)25 InputStream (java.io.InputStream)25 MessagingException (javax.mail.MessagingException)25 MimeMultipart (javax.mail.internet.MimeMultipart)25 MimeMessage (javax.mail.internet.MimeMessage)23 ByteArrayInputStream (java.io.ByteArrayInputStream)22 Message (org.apache.camel.Message)21 OMElement (org.apache.axiom.om.OMElement)17 Processor (org.apache.camel.Processor)15 MockEndpoint (org.apache.camel.component.mock.MockEndpoint)14 File (java.io.File)13 PipedInputStream (java.io.PipedInputStream)13