![JAR search and dependency download from the Maven repository](/logo.png)
com.codingapi.springboot.framework.event.EventStackContext Maven / Gradle / Ivy
package com.codingapi.springboot.framework.event;
import lombok.Getter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 事件栈上下文
*/
public class EventStackContext {
private final Map>> eventClassStack = new HashMap<>();
private final Map> eventStack = new HashMap<>();
@Getter
private final static EventStackContext instance = new EventStackContext();
private EventStackContext() {
}
private void addEventClass(String traceId, IEvent event) {
List> events = eventClassStack.get(traceId);
if (events == null) {
events = new ArrayList<>();
}
events.add(event.getClass());
eventClassStack.put(traceId, events);
}
private void addEventStack(String traceId, IEvent event) {
List events = eventStack.get(traceId);
if (events == null) {
events = new ArrayList<>();
}
events.add(event);
eventStack.put(traceId, events);
}
void addEvent(String traceId, IEvent event) {
addEventClass(traceId, event);
addEventStack(traceId, event);
}
boolean checkEventLoop(String traceId, IEvent event) {
List> events = eventClassStack.get(traceId);
if (events != null) {
return events.contains(event.getClass());
}
return false;
}
public List getEvents(String eventKey) {
if(eventKey!=null) {
String traceId = eventKey.split("#")[0];
return eventStack.get(traceId);
}
return null;
}
public List> getEventClasses(String eventKey) {
if(eventKey!=null) {
String traceId = eventKey.split("#")[0];
return eventClassStack.get(traceId);
}
return null;
}
void remove(String traceId) {
eventStack.remove(traceId);
eventClassStack.remove(traceId);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy