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.CreditCardScannedEvent;
008    import org.cocome.tradingsystem.cashdeskline.events.PINEnteredEvent;
009    import org.cocome.tradingsystem.systests.interfaces.ICardReader;
010    
011    /**
012     * Glue code for the card reader.
013     * 
014     * @author Benjamin Hummel
015     * @author $Author: hummel $
016     * @version $Rev: 63 $
017     * @levd.rating GREEN Rev: 63
018     */
019    public class CardReader implements ICardReader {
020    
021            /** Publisher for sending events. */
022            private final TopicPublisher publisher;
023    
024            /** Session used for creating object messages. */
025            private final TopicSession session;
026    
027            /** Constructor. */
028            public CardReader(TopicPublisher publisher, TopicSession session) {
029                    this.publisher = publisher;
030                    this.session = session;
031            }
032    
033            /** {@inheritDoc} */
034            public void enterCard(int cardNumber) throws JMSException {
035                    publisher
036                                    .publish(session
037                                                    .createObjectMessage(new CreditCardScannedEvent(""
038                                                                    + cardNumber)));
039            }
040    
041            /** {@inheritDoc} */
042            public void enterPin(int pin) throws JMSException {
043                    publisher
044                                    .publish(session.createObjectMessage(new PINEnteredEvent(pin)));
045            }
046    
047    }