001    package com.hammurapi.eventbus.tests;
002    
003    import java.util.ArrayList;
004    import java.util.Collections;
005    import java.util.List;
006    
007    import com.hammurapi.eventbus.Handler;
008    import com.hammurapi.eventbus.Resettable;
009    
010    public class StatefulHandler implements Resettable {
011            
012            private volatile int counter;
013            private volatile int resetCounter;
014            
015            public int getCounter() {
016                    return counter;
017            }
018            
019            private volatile List<Object> state = Collections.synchronizedList(new ArrayList<Object>());
020            
021            @Handler
022            public void handle(String str) {
023                    ++counter;
024                    state.add(str);
025            }
026            
027            @Handler
028            public void handle(int i) {
029                    ++counter;
030                    state.add(i);
031            }
032            
033            public List<Object> getState() {
034                    return state;
035            }
036    
037            @Override
038            public void reset() {
039                    state.clear();
040                    ++resetCounter;         
041            }
042            
043            public int getResetCounter() {
044                    return resetCounter;
045            }
046            
047    }