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 }