001    package org.cocome.tradingsystem.testdriver;
002    
003    import javax.jms.JMSException;
004    import javax.jms.TopicPublisher;
005    import javax.jms.TopicSession;
006    
007    import org.cocome.tradingsystem.cashdeskline.events.ProductBarcodeScannedEvent;
008    import org.cocome.tradingsystem.systests.interfaces.IBarcodeScanner;
009    
010    /**
011     * Glue code for the barcode scanner.
012     * 
013     * @author Benjamin Hummel
014     * @author $Author: hummel $
015     * @version $Rev: 63 $
016     * @levd.rating GREEN Rev: 63
017     */
018    public class BarcodeScanner implements IBarcodeScanner {
019    
020            /** Publisher for sending events. */
021            private final TopicPublisher publisher;
022    
023            /** Session used for creating object messages. */
024            private final TopicSession session;
025    
026            /** Constructor. */
027            public BarcodeScanner(TopicPublisher publisher, TopicSession session) {
028                    this.publisher = publisher;
029                    this.session = session;
030            }
031    
032            /** {@inheritDoc} */
033            public void sendBarcode(int barcode) throws JMSException {
034                    publisher.publish(session
035                                    .createObjectMessage(new ProductBarcodeScannedEvent(barcode)));
036            }
037    }