<?xml version="1.0" encoding="UTF-8"?> <class-diagram version="1.1.9" icons="true" automaticImage="PNG" always-add-relationships="true" generalizations="true" realizations="true" associations="true" dependencies="true" nesting-relationships="true" router="FAN"> <class id="1" language="java" name="com.iluwatar.eda.model.User" project="event-driven-architecture" file="/event-driven-architecture/src/main/java/com/iluwatar/eda/model/User.java" binary="false" corner="BOTTOM_RIGHT"> <position height="-1" width="-1" x="437" y="535"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" sort-features="false" accessors="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/> </display> </class> <class id="2" language="java" name="com.iluwatar.eda.handler.UserUpdatedEventHandler" project="event-driven-architecture" file="/event-driven-architecture/src/main/java/com/iluwatar/eda/handler/UserUpdatedEventHandler.java" binary="false" corner="BOTTOM_RIGHT"> <position height="-1" width="-1" x="763" y="379"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" sort-features="false" accessors="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/> </display> </class> <class id="3" language="java" name="com.iluwatar.eda.handler.UserCreatedEventHandler" project="event-driven-architecture" file="/event-driven-architecture/src/main/java/com/iluwatar/eda/handler/UserCreatedEventHandler.java" binary="false" corner="BOTTOM_RIGHT"> <position height="-1" width="-1" x="596" y="272"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" sort-features="false" accessors="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/> </display> </class> <interface id="4" language="java" name="com.iluwatar.eda.framework.Event" project="event-driven-architecture" file="/event-driven-architecture/src/main/java/com/iluwatar/eda/framework/Event.java" binary="false" corner="BOTTOM_RIGHT"> <position height="-1" width="-1" x="188" y="121"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" sort-features="false" accessors="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/> </display> </interface> <interface id="5" language="java" name="com.iluwatar.eda.framework.Handler" project="event-driven-architecture" file="/event-driven-architecture/src/main/java/com/iluwatar/eda/framework/Handler.java" binary="false" corner="BOTTOM_RIGHT"> <position height="-1" width="-1" x="755" y="58"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" sort-features="false" accessors="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/> </display> </interface> <class id="6" language="java" name="com.iluwatar.eda.framework.EventDispatcher" project="event-driven-architecture" file="/event-driven-architecture/src/main/java/com/iluwatar/eda/framework/EventDispatcher.java" binary="false" corner="BOTTOM_RIGHT"> <position height="-1" width="-1" x="499" y="122"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" sort-features="false" accessors="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/> </display> </class> <class id="7" language="java" name="com.iluwatar.eda.event.UserCreatedEvent" project="event-driven-architecture" file="/event-driven-architecture/src/main/java/com/iluwatar/eda/event/UserCreatedEvent.java" binary="false" corner="BOTTOM_RIGHT"> <position height="-1" width="-1" x="102" y="380"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" sort-features="false" accessors="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/> </display> </class> <class id="8" language="java" name="com.iluwatar.eda.event.UserUpdatedEvent" project="event-driven-architecture" file="/event-driven-architecture/src/main/java/com/iluwatar/eda/event/UserUpdatedEvent.java" binary="false" corner="BOTTOM_RIGHT"> <position height="-1" width="-1" x="320" y="382"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" sort-features="false" accessors="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/> </display> </class> <class id="9" language="java" name="com.iluwatar.eda.event.AbstractEvent" project="event-driven-architecture" file="/event-driven-architecture/src/main/java/com/iluwatar/eda/event/AbstractEvent.java" binary="false" corner="BOTTOM_RIGHT"> <position height="-1" width="-1" x="188" y="240"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" sort-features="false" accessors="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/> </display> </class> <dependency id="10"> <end type="SOURCE" refId="3"/> <end type="TARGET" refId="1"/> </dependency> <dependency id="11"> <end type="SOURCE" refId="2"/> <end type="TARGET" refId="1"/> </dependency> <dependency id="12"> <end type="SOURCE" refId="2"/> <end type="TARGET" refId="8"/> </dependency> <realization id="13"> <end type="SOURCE" refId="2"/> <end type="TARGET" refId="5"/> </realization> <generalization id="14"> <end type="SOURCE" refId="7"/> <end type="TARGET" refId="9"/> </generalization> <realization id="15"> <end type="SOURCE" refId="3"/> <end type="TARGET" refId="5"/> </realization> <association id="16"> <end type="SOURCE" refId="6" navigable="false"> <attribute id="17" name="handlers"> <position height="19" width="56" x="672" y="144"/> </attribute> <multiplicity id="18" minimum="0" maximum="2147483647"> <position height="17" width="23" x="797" y="142"/> </multiplicity> </end> <end type="TARGET" refId="5" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <realization id="19"> <end type="SOURCE" refId="9"/> <end type="TARGET" refId="4"/> </realization> <dependency id="20"> <end type="SOURCE" refId="6"/> <end type="TARGET" refId="4"/> </dependency> <dependency id="21"> <bendpoint x="187" y="57"/> <end type="SOURCE" refId="5"/> <end type="TARGET" refId="4"/> </dependency> <association id="22"> <end type="SOURCE" refId="8" navigable="false"> <attribute id="23" name="user"> <position height="0" width="0" x="-500" y="-83"/> </attribute> <multiplicity id="24" minimum="0" maximum="1"> <position height="0" width="0" x="-500" y="-83"/> </multiplicity> </end> <end type="TARGET" refId="1" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <generalization id="25"> <end type="SOURCE" refId="8"/> <end type="TARGET" refId="9"/> </generalization> <association id="26"> <end type="SOURCE" refId="7" navigable="false"> <attribute id="27" name="user"> <position height="0" width="0" x="-500" y="-83"/> </attribute> <multiplicity id="28" minimum="0" maximum="1"> <position height="0" width="0" x="-500" y="-83"/> </multiplicity> </end> <end type="TARGET" refId="1" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <dependency id="29"> <bendpoint x="308" y="303"/> <end type="SOURCE" refId="3"/> <end type="TARGET" refId="7"/> </dependency> <classifier-display autosize="true" stereotype="true" package="true" initial-value="true" signature="true" sort-features="false" accessors="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true" static="true"/> <operations public="true" package="true" protected="true" private="true" static="true"/> </classifier-display> <association-display labels="true" multiplicity="true"/> </class-diagram>