package core.framework.impl.web.session;
import core.framework.api.util.Maps;
import core.framework.api.util.Sets;
import core.framework.api.web.Session;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
/**
* @author neo
*/
public class SessionImpl implements Session {
final Map<String, String> values = Maps.newHashMap();
final Set<String> changedFields = Sets.newHashSet();
String id;
boolean invalidated;
@Override
public Optional<String> get(String key) {
return Optional.ofNullable(values.get(key));
}
@Override
public void set(String key, String value) {
values.put(key, value);
changedFields.add(key);
}
@Override
public void remove(String key) {
values.put(key, null);
changedFields.add(key);
}
boolean changed() {
return !changedFields.isEmpty();
}
@Override
public void invalidate() {
invalidated = true;
}
}