Skip to content

Commit

Permalink
新增一个register,注册handler和Response的映射
Browse files Browse the repository at this point in the history
新增一个register,注册EventHandler和Resposne的映射
  • Loading branch information
sinopower authored Aug 28, 2020
1 parent efdeecb commit 64b1c7b
Showing 1 changed file with 21 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -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;

Expand Down Expand Up @@ -33,18 +34,20 @@ public Map<Class, Class> getResponseRepository() {
return responseRepository;
}

@SuppressWarnings("unchecked")
public List<EventHandlerI> getEventHandler(Class eventClass) {
List<EventHandlerI> eventHandlerIList = findHandler(eventClass);
if (eventHandlerIList == null || eventHandlerIList.size() == 0) {
List<EventHandlerI> 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<? extends EventI> eventClz, EventHandlerI executor){
List<EventHandlerI> eventHandlers = eventRepository.get(eventClz);
Expand All @@ -55,11 +58,20 @@ public void register(Class<? extends EventI> eventClz, EventHandlerI executor){
eventRepository.put(eventClz, eventHandlers);
}

/**
* 注册事件处理器的返回类
*
* @param eventHandlerClz 事件处理器clazz
* @param responseClz 事件处理器返回实体clazz
*/
public void register(Class<? extends EventHandlerI> eventHandlerClz, Class<? extends Response> responseClz) {
responseRepository.put(eventHandlerClz, responseClz);
}

private List<EventHandlerI> findHandler(Class<? extends EventI> eventClass){
List<EventHandlerI> eventHandlerIList = null;
Class cls = eventClass;
eventHandlerIList = eventRepository.get(cls);
return eventHandlerIList;
List<EventHandlerI> eventHandlerList;
eventHandlerList = eventRepository.get(eventClass);
return eventHandlerList;
}

}

0 comments on commit 64b1c7b

Please sign in to comment.