Skip to content

Commit 3ef0921

Browse files
author
chris
committed
iluwatar#113 Event Driven Architecture
- refactored and moved around some classes
1 parent eb39621 commit 3ef0921

13 files changed

Lines changed: 79 additions & 27 deletions

File tree

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
package com.iluwatar.eda.advanced;
22

3+
import com.iluwatar.eda.advanced.events.Event;
4+
import com.iluwatar.eda.advanced.events.UserCreatedEvent;
5+
import com.iluwatar.eda.advanced.events.UserUpdatedEvent;
6+
import com.iluwatar.eda.advanced.handler.UserCreatedEventHandler;
7+
import com.iluwatar.eda.advanced.handler.UserUpdatedEventHandler;
8+
39
public class App {
410

511
public static void main(String[] args) {
612
EventDispatcher dispatcher = new EventDispatcher();
7-
dispatcher.registerChannel(Event.class, new Handler());
8-
dispatcher.dispatch(new Event());
13+
dispatcher.registerChannel(UserCreatedEvent.class, new UserCreatedEventHandler());
14+
dispatcher.registerChannel(UserUpdatedEvent.class, new UserUpdatedEventHandler());
15+
dispatcher.dispatch(new UserCreatedEvent());
16+
dispatcher.dispatch(new UserUpdatedEvent());
917
}
1018
}

event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Channel.java

Lines changed: 0 additions & 6 deletions
This file was deleted.

event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/DynamicRouter.java

Lines changed: 0 additions & 6 deletions
This file was deleted.

event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/EventDispatcher.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
package com.iluwatar.eda.advanced;
22

3+
import com.iluwatar.eda.advanced.events.Event;
4+
import com.iluwatar.eda.advanced.framework.Channel;
5+
import com.iluwatar.eda.advanced.framework.DynamicRouter;
6+
37
import java.util.HashMap;
48
import java.util.Map;
59

610
public class EventDispatcher implements DynamicRouter<Event> {
7-
private Map<Class<? extends Event>, Handler> handlers;
11+
12+
private Map<Class<? extends Event>, Channel> handlers;
813

914
public EventDispatcher() {
10-
handlers = new HashMap<Class<? extends Event>, Handler>();
15+
handlers = new HashMap<Class<? extends Event>, Channel>();
1116
}
1217

1318
public void registerChannel(Class<? extends Event> contentType,
14-
Channel<? extends Event> channel) {
15-
handlers.put(contentType, (Handler)channel);
19+
Channel channel) {
20+
handlers.put(contentType, channel);
1621
}
1722

1823
public void dispatch(Event content) {

event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Handler.java

Lines changed: 0 additions & 7 deletions
This file was deleted.

event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Event.java renamed to event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/events/Event.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
package com.iluwatar.eda.advanced;
1+
package com.iluwatar.eda.advanced.events;
2+
3+
import com.iluwatar.eda.advanced.framework.Message;
24

35
public class Event implements Message {
46
public Class<? extends Message> getType() {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.iluwatar.eda.advanced.events;
2+
3+
import com.iluwatar.eda.advanced.events.Event;
4+
5+
/**
6+
* @author cfarrugia
7+
*/
8+
public class UserCreatedEvent extends Event {
9+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.iluwatar.eda.advanced.events;
2+
3+
import com.iluwatar.eda.advanced.events.Event;
4+
5+
public class UserUpdatedEvent extends Event {
6+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.iluwatar.eda.advanced.framework;
2+
3+
4+
import com.iluwatar.eda.advanced.events.Event;
5+
6+
public interface Channel<E extends Event> {
7+
void dispatch(E message);
8+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.iluwatar.eda.advanced.framework;
2+
3+
public interface DynamicRouter<E extends Message> {
4+
void registerChannel(Class<? extends E> contentType, Channel channel);
5+
void dispatch(E content);
6+
}

0 commit comments

Comments
 (0)