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 }