diff --git a/cola-framework-core/src/main/java/com/alibaba/cola/event/EventHub.java b/cola-framework-core/src/main/java/com/alibaba/cola/event/EventHub.java index 73d87db27..56b6844ec 100644 --- a/cola-framework-core/src/main/java/com/alibaba/cola/event/EventHub.java +++ b/cola-framework-core/src/main/java/com/alibaba/cola/event/EventHub.java @@ -1,5 +1,6 @@ package com.alibaba.cola.event; +import com.alibaba.cola.dto.Response; import com.alibaba.cola.exception.framework.ColaException; import org.springframework.stereotype.Component; @@ -33,18 +34,20 @@ public Map getResponseRepository() { return responseRepository; } + @SuppressWarnings("unchecked") public List getEventHandler(Class eventClass) { - List eventHandlerIList = findHandler(eventClass); - if (eventHandlerIList == null || eventHandlerIList.size() == 0) { + List eventHandlerList = findHandler(eventClass); + if (eventHandlerList == null || eventHandlerList.size() == 0) { throw new ColaException(eventClass + "is not registered in eventHub, please register first"); } - return eventHandlerIList; + return eventHandlerList; } /** * 注册事件 - * @param eventClz - * @param executor + * + * @param eventClz 领域事件实体clazz + * @param executor 领域事件处理器 */ public void register(Class eventClz, EventHandlerI executor){ List eventHandlers = eventRepository.get(eventClz); @@ -55,11 +58,20 @@ public void register(Class eventClz, EventHandlerI executor){ eventRepository.put(eventClz, eventHandlers); } + /** + * 注册事件处理器的返回类 + * + * @param eventHandlerClz 事件处理器clazz + * @param responseClz 事件处理器返回实体clazz + */ + public void register(Class eventHandlerClz, Class responseClz) { + responseRepository.put(eventHandlerClz, responseClz); + } + private List findHandler(Class eventClass){ - List eventHandlerIList = null; - Class cls = eventClass; - eventHandlerIList = eventRepository.get(cls); - return eventHandlerIList; + List eventHandlerList; + eventHandlerList = eventRepository.get(eventClass); + return eventHandlerList; } }