package cn.org.rapid_framework.web.session.store;
import java.util.Map;
@SuppressWarnings("unchecked")
public abstract class SessionStore {
private boolean isSaveSessionDataOnAttributeChange = false;
public boolean isSaveSessionDataOnAttributeChange() {
return isSaveSessionDataOnAttributeChange;
}
/**
* @param isSaveSessionDataOnAttributeChange default is false
*/
public void setSaveSessionDataOnAttributeChange(boolean isSaveSessionDataOnAttributeChange) {
this.isSaveSessionDataOnAttributeChange = isSaveSessionDataOnAttributeChange;
}
public abstract void saveSession(String sessionId,Map sessionData,int timeoutSeconds);
public abstract void deleteSession(String sessionId);
public abstract Map getSession(String sessionId,int timeoutSeconds);
public void onSetAttribute(String sessionId,String key,Map sessionData,int timeoutSeconds) {
if(isSaveSessionDataOnAttributeChange) {
saveSession(sessionId, sessionData, timeoutSeconds);
}
}
public void onRemoveAttribute(String sessionId,String key,Map sessionData,int timeoutSeconds) {
if(isSaveSessionDataOnAttributeChange) {
saveSession(sessionId, sessionData, timeoutSeconds);
}
}
}