#3 session API draft

This commit is contained in:
2021-09-23 14:56:07 +03:00
parent 05af2f05a4
commit c62de38f17
13 changed files with 258 additions and 138 deletions

View File

@@ -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<>()));
}
}

View File

@@ -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);
}
}