public NodeHandler(Node node) { Node = node; var stateFactory = new StateHandlerFactory(Node); foreach (var messageType in stateFactory.TriggerMessageTypes) { // Ordinarily the Repository can discover all trigger messages in the RepositoryItem // but since there are multiple types of repo items in this repo, we need to give it // some assistance. The factory tells the repo what triggers it can handle. TriggerMessageTypes.Add(messageType); } RepoItemFactory = stateFactory.CreateHandler; }
public static void Main() { var testcase1 = DummyStateType1.State1; var testcase2 = DummyStateType2.OtherState1; var handler1 = StateHandlerFactory <DummyStateType1> .Create(); var handler2 = StateHandlerFactory <DummyStateType2> .Create(); var result1 = handler1.handle(testcase1); var result2 = handler2.handle(testcase2); var alsoResult1 = tadaaaa(testcase1); var alsoResult2 = tadaaaa(testcase2); }
static bool tadaaaa <T>(T state) { return(StateHandlerFactory <T> .Create().handle(state)); }