#3 session API draft
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
package ru.penkrat.stbf.common.session;
|
||||
|
||||
import ru.penkrat.stbf.api.BotSession;
|
||||
import ru.penkrat.stbf.api.SessionProvider;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class InMemBotSessionProvider implements SessionProvider {
|
||||
|
||||
private static final Map<Long, BotSession> MAP = new ConcurrentHashMap<>();
|
||||
|
||||
@Override
|
||||
public BotSession get(Long chatId) {
|
||||
return MAP.computeIfAbsent(chatId, k -> new MapBackedBotSession(new ConcurrentHashMap<>()));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package ru.penkrat.stbf.common.session;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import ru.penkrat.stbf.api.BotSession;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
class MapBackedBotSession implements BotSession {
|
||||
|
||||
private final Map<String, Object> map;
|
||||
|
||||
@Override
|
||||
public Object getAttribute(String name) {
|
||||
return map.get(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAttribute(String name, Object value) {
|
||||
map.put(name, value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user