Search in sources :

Example 1 with Message

use of org.switchyard.Message in project quickstarts by jboss-switchyard.

the class CreateFlightTripMessageComposer 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 flight connection and passenger info from exchange context property.
    FlightTripRequestInfo flightTripRequestInfo = (FlightTripRequestInfo) exchange.getContext().getProperty(FLIGHT_TRIP_REQUEST_INFO).getValue();
    FlightConnectionInfo flightConnectionInfo = flightTripRequestInfo.getFlightConnectionInfo();
    PassengerInfo passengerInfo = flightTripRequestInfo.getPassengerInfo();
    // Retrieve SAP response object from body of exchange message.
    Structure flightTripCreateResponse = source.getMessage().getBody(Structure.class);
    if (flightTripCreateResponse == null) {
        throw new Exception("No Flight Trip Create Response");
    }
    // Check BAPI return parameter for errors 
    @SuppressWarnings("unchecked") Table<Structure> bapiReturn = flightTripCreateResponse.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);
    }
    // Create bean to hold Flight Booking data.
    BookFlightResponse bookFlightResponse = new BookFlightResponse();
    // Trip Number
    String tripNumber = flightTripCreateResponse.get("TRIPNUMBER", String.class);
    if (tripNumber != null) {
        bookFlightResponse.setTripNumber(tripNumber);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Added TRIPNUMBER = '{}' to request", tripNumber);
        }
    } else {
        throw new Exception("No Flight Booking Trip Number");
    }
    // Pricing Info
    Structure ticketPrice = flightTripCreateResponse.get("TICKET_PRICE", Structure.class);
    if (ticketPrice != null) {
        // Ticket Price
        BigDecimal tripPrice = ticketPrice.get("TRIPPRICE", BigDecimal.class);
        bookFlightResponse.setTicketPrice(tripPrice);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Added TICKET_PRICE = '{}' to request", tripPrice);
        }
        // Ticket Tax
        BigDecimal tripTax = ticketPrice.get("TRIPTAX", BigDecimal.class);
        bookFlightResponse.setTicketTax(tripTax);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Added TICKET_TAX = '{}' to request", tripTax);
        }
        // Currency
        String currency = ticketPrice.get("CURR", String.class);
        bookFlightResponse.setCurrency(currency);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Added CURRENCY = '{}' to request", currency);
        }
    } else {
        throw new Exception("No Flight Booking Ticket Price");
    }
    // Passenger Info
    //  Form
    bookFlightResponse.setPassengerFormOfAddress(passengerInfo.getFormOfAddress());
    //  Name
    bookFlightResponse.setPassengerName(passengerInfo.getName());
    //  DOB
    bookFlightResponse.setPassengerDateOfBirth(passengerInfo.getDateOfBirth());
    // Flight Info
    FlightInfo flightInfo = new FlightInfo();
    //  Flight Time
    flightInfo.setFlightTime(flightConnectionInfo.getFlightTime());
    //  Departure City
    flightInfo.setCityFrom(flightConnectionInfo.getDepartureCity());
    //  Departure Date
    flightInfo.setDepartureDate(flightConnectionInfo.getDepartureDate());
    //  Departure Time
    flightInfo.setDepartureTime(flightConnectionInfo.getDepartureTime());
    //  Arrival City
    flightInfo.setCityTo(flightConnectionInfo.getArrivalCity());
    //  Arrival Date
    flightInfo.setArrivalDate(flightConnectionInfo.getArrivalDate());
    //  Arrival Time
    flightInfo.setArrivalTime(flightConnectionInfo.getArrivalTime());
    bookFlightResponse.setFlightInfo(flightInfo);
    ConnectionInfoTable connectionInfoTable = new ConnectionInfoTable();
    List<ConnectionInfo> rows = new ArrayList<ConnectionInfo>();
    for (FlightHop flightHop : flightConnectionInfo.getFlightHopList()) {
        // Connection Info
        ConnectionInfo connection = new ConnectionInfo();
        //  Connection ID
        connection.setConnectionId(flightHop.getHopNumber());
        //  Airline
        connection.setAirline(flightHop.getAirlineName());
        //  Plane Type
        connection.setPlaneType(flightHop.getAircraftType());
        //  Departure City
        connection.setCityFrom(flightHop.getDepatureCity());
        //  Departure Date
        connection.setDepartureDate(flightHop.getDepatureDate());
        //  Departure Time
        connection.setDepartureTime(flightHop.getDepatureTime());
        //  Arrival City
        connection.setCityTo(flightHop.getArrivalCity());
        //  Arrival Date
        connection.setArrivalDate(flightHop.getArrivalDate());
        //  Arrival Time
        connection.setArrivalTime(flightHop.getArrivalTime());
        rows.add(connection);
    }
    connectionInfoTable.setRows(rows);
    bookFlightResponse.setConnectionInfo(connectionInfoTable);
    response.setContent(bookFlightResponse);
    return response;
}
Also used : Message(org.switchyard.Message) ConnectionInfoTable(org.switchyard.quickstarts.camel.sap.binding.jaxb.ConnectionInfoTable) ArrayList(java.util.ArrayList) FlightConnectionInfo(org.switchyard.quickstarts.camel.sap.binding.bean.FlightConnectionInfo) PassengerInfo(org.switchyard.quickstarts.camel.sap.binding.bean.PassengerInfo) DataHandler(javax.activation.DataHandler) BigDecimal(java.math.BigDecimal) FlightHop(org.switchyard.quickstarts.camel.sap.binding.bean.FlightHop) FlightInfo(org.switchyard.quickstarts.camel.sap.binding.jaxb.FlightInfo) BookFlightResponse(org.switchyard.quickstarts.camel.sap.binding.jaxb.BookFlightResponse) FlightTripRequestInfo(org.switchyard.quickstarts.camel.sap.binding.bean.FlightTripRequestInfo) ConnectionInfo(org.switchyard.quickstarts.camel.sap.binding.jaxb.ConnectionInfo) FlightConnectionInfo(org.switchyard.quickstarts.camel.sap.binding.bean.FlightConnectionInfo) Structure(org.fusesource.camel.component.sap.model.rfc.Structure)

Example 2 with Message

use of org.switchyard.Message 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 3 with Message

use of org.switchyard.Message 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 4 with Message

use of org.switchyard.Message in project quickstarts by jboss-switchyard.

the class AuditingTest method testCamelRoute.

@Test
public void testCamelRoute() {
    Message out = invoker.sendInOut(new Order());
    assertEquals("Order Accepted", out.getContent(OrderAck.class).getStatus());
    out = invoker.sendInOut(new Order());
    assertEquals("Order Accepted, after delay", out.getContent(OrderAck.class).getStatus());
}
Also used : Message(org.switchyard.Message) Test(org.junit.Test)

Aggregations

Message (org.switchyard.Message)4 DataHandler (javax.activation.DataHandler)3 Structure (org.fusesource.camel.component.sap.model.rfc.Structure)3 BigDecimal (java.math.BigDecimal)2 ArrayList (java.util.ArrayList)2 FlightConnectionInfo (org.switchyard.quickstarts.camel.sap.binding.bean.FlightConnectionInfo)2 FlightHop (org.switchyard.quickstarts.camel.sap.binding.bean.FlightHop)2 Date (java.util.Date)1 Test (org.junit.Test)1 FlightCustomerInfo (org.switchyard.quickstarts.camel.sap.binding.bean.FlightCustomerInfo)1 FlightTripRequestInfo (org.switchyard.quickstarts.camel.sap.binding.bean.FlightTripRequestInfo)1 PassengerInfo (org.switchyard.quickstarts.camel.sap.binding.bean.PassengerInfo)1 PriceInfo (org.switchyard.quickstarts.camel.sap.binding.bean.PriceInfo)1 SeatAvailibility (org.switchyard.quickstarts.camel.sap.binding.bean.SeatAvailibility)1 BookFlightResponse (org.switchyard.quickstarts.camel.sap.binding.jaxb.BookFlightResponse)1 ConnectionInfo (org.switchyard.quickstarts.camel.sap.binding.jaxb.ConnectionInfo)1 ConnectionInfoTable (org.switchyard.quickstarts.camel.sap.binding.jaxb.ConnectionInfoTable)1 FlightInfo (org.switchyard.quickstarts.camel.sap.binding.jaxb.FlightInfo)1