Files
反编译工作区 dee355b4a7 chore: 工作区反编译与 Maven/文档/脚本同步到发布分支
- artifacts/decompiled 树与相关源码变更
- maven-cw-elevator-application 业务 docs 与 package-info
- scripts 下 formatter 校验与辅助脚本
- 其他子工程/接口与发布线一并纳入版本控制

Made-with: Cursor

Former-commit-id: e102e8cab64e575bcd23c9a66a598aa1892bb492
2026-04-25 09:35:35 +08:00

109 lines
2.7 KiB
Java

package cn.cloudwalk.event;
import cn.cloudwalk.cwos.client.event.EventClient;
import cn.cloudwalk.cwos.client.event.event.BaseEvent;
import cn.cloudwalk.cwos.client.event.event.CustomEvent;
import cn.cloudwalk.event.handler.CustomEventHandler;
import cn.cloudwalk.event.handler.EventHandler;
import cn.cloudwalk.event.handler.EventHandlerMapping;
import cn.cloudwalk.event.handler.EventHandlerWorker;
import cn.cloudwalk.event.listener.GroupEventListener;
import cn.cloudwalk.event.listener.GroupListnerClassMapping;
import cn.cloudwalk.event.task.EventHandleTask;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
public class CloudwalkEventManager
{
private static final Logger LOGGER = LoggerFactory.getLogger(CloudwalkEventManager.class);
private EventHandlerMapping eventHandlerMapping;
private EventHandlerWorker eventHandlerWorker;
private GroupListnerClassMapping groupListnerClassMapping;
private EventClient eventClient;
public void handle(Class<? extends GroupEventListener> eventListnerClass, BaseEvent baseEvent) {
String groupId = this.groupListnerClassMapping.getGroupId(eventListnerClass);
if (baseEvent instanceof CustomEvent) {
List<CustomEventHandler> customEventHandlers = (List<CustomEventHandler>)this.eventHandlerMapping.getServiceCodeCustomHandlerListMap(groupId, ((CustomEvent)baseEvent).getTopic()).get(baseEvent.getServiceCode());
eventHandle(baseEvent, customEventHandlers);
return;
}
List<EventHandler> handlerList = (List<EventHandler>)this.eventHandlerMapping.getServiceCodeHandlerListMap(groupId, baseEvent.getClass()).get(baseEvent.getServiceCode());
eventHandle(baseEvent, handlerList);
}
private <H extends EventHandler> void eventHandle(BaseEvent baseEvent, List<H> handlers) {
if (CollectionUtils.isEmpty(handlers)) {
LOGGER.error("没有相应的事件处理程序");
return;
}
for (EventHandler eventHandler : handlers) {
this.eventHandlerWorker.work(new EventHandleTask(baseEvent, eventHandler));
}
}
public void publish(BaseEvent baseEvent) {
this.eventClient.pubEvent(baseEvent);
}
public void setEventHandlerMapping(EventHandlerMapping eventHandlerMapping) {
this.eventHandlerMapping = eventHandlerMapping;
}
public EventHandlerMapping getEventHandlerMapping() {
return this.eventHandlerMapping;
}
public void setEventHandlerWorker(EventHandlerWorker eventHandlerWorker) {
this.eventHandlerWorker = eventHandlerWorker;
}
public void setEventClient(EventClient eventClient) {
this.eventClient = eventClient;
}
public void setGroupListnerClassMapping(GroupListnerClassMapping groupListnerClassMapping) {
this.groupListnerClassMapping = groupListnerClassMapping;
}
}