package org.marketcetera.client.jms; import java.util.ArrayList; import java.util.List; import org.marketcetera.util.except.ExceptUtils; /** * A sample message handler. It cannot be an inner class. * * @author tlerios@marketcetera.com * @since 1.0.0 * @version $Id: SampleReplyHandler.java 16154 2012-07-14 16:34:05Z colin $ */ /* $License$ */ public abstract class SampleReplyHandler<T> implements ReplyHandler<T> { // INSTANCE DATA. private List<T> mReceived=new ArrayList<T>(JmsManagerTest.TEST_COUNT); private List<T> mReplies=new ArrayList<T>(JmsManagerTest.TEST_COUNT); // INSTANCE METHODS. List<T> getReceived() { return mReceived; } List<T> getReplies() { return mReplies; } protected abstract T getReply (T msg) throws Exception; abstract T create (int i); abstract boolean isEqual (int i, T msg); // ReplyHandler. @Override public T replyToMessage (T msg) { getReceived().add(msg); T rMsg; try { rMsg=getReply(msg); } catch (Exception ex) { ExceptUtils.interrupt(ex); throw new IllegalArgumentException(msg.toString(),ex); } getReplies().add(rMsg); return rMsg; } }