View Javadoc

1   /*
2    * Copyright 2009-2010 Capgemini
3    * Licensed under the Apache License, Version 2.0 (the "License"); 
4    * you may not use this file except in compliance with the License. 
5    * You may obtain a copy of the License at 
6    * 
7    * http://www.apache.org/licenses/LICENSE-2.0 
8    * 
9    * Unless required by applicable law or agreed to in writing, software 
10   * distributed under the License is distributed on an "AS IS" BASIS, 
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
12   * See the License for the specific language governing permissions and 
13   * limitations under the License. 
14   * 
15   */
16  package net.sourceforge.statelessfilter.backend;
17  
18  import java.io.IOException;
19  import java.util.List;
20  
21  import javax.servlet.http.HttpServletRequest;
22  import javax.servlet.http.HttpServletResponse;
23  
24  import net.sourceforge.statelessfilter.filter.IPlugin;
25  
26  /**
27   * Interface for a session backend. All session backends must implement this
28   * interface.
29   * 
30   * @author Nicolas Richeton - Capgemini
31   */
32  public interface ISessionBackend extends IPlugin {
33  
34  	/**
35  	 * Restores a session from the backend.
36  	 * 
37  	 * @param request
38  	 * @return session data or null if session does not exists or restoration
39  	 *         failed.
40  	 */
41  	ISessionData restore(HttpServletRequest request);
42  
43  	/**
44  	 * Saves a session to the backend.
45  	 * 
46  	 * @param session
47  	 *            Current session.
48  	 * @param dirtyAttributes
49  	 *            list of attributes that were added/changed/removed during the
50  	 *            current request.
51  	 * @param request
52  	 *            Current request.
53  	 * @param response
54  	 *            Current response.
55  	 * @throws IOException
56  	 */
57  	void save(ISessionData session, List<String> dirtyAttributes,
58  			HttpServletRequest request, HttpServletResponse response)
59  			throws IOException;
60  }