Applying patch from Jonathon Rossi
[castle.git] / Experiments / MVC / Castle.MVC / States / ISate.cs
blobdb699a5d3d103863c9c6e664cc4f60db0078037f
1 #region Apache Notice
2 /*****************************************************************************
3 *
4 * Castle.MVC
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 ********************************************************************************/
19 #endregion
21 #region Autors
23 /************************************************
24 * Gilles Bayon
25 *************************************************/
26 #endregion
28 using System;
29 using System.Collections;
31 using Castle.MVC.StatePersister;
33 namespace Castle.MVC.States
35 /// <summary>
36 /// Maintains user process state.
37 /// </summary>
38 public interface IState
41 /// <summary>
42 /// A state persister provider.
43 /// </summary>
44 IStatePersister StatePersister { get; set; }
46 /// <summary>
47 /// Gets or sets an element saved on the state with the specified key.
48 /// </summary>
49 object this[ string key ]{ get; set; }
51 /// <summary>
52 /// Gets or sets the command id value. This value determines
53 /// which view is the next view in the mapping graph.
54 /// </summary>
55 string Command { get; set; }
57 /// <summary>
58 /// Gets or sets the current view.
59 /// </summary>
60 string CurrentView { get; set; }
62 /// <summary>
63 /// Gets or sets the previous view.
64 /// </summary>
65 string PreviousView { get; set; }
67 /// <summary>
68 /// Provides access to a dictionary of volative items.
69 /// </summary>
70 IDictionary Items { get; }
72 /// <summary>
73 /// Reset volatile items and command.
74 /// </summary>
75 void Reset();
77 /// <summary>
78 /// Save the state
79 /// </summary>
80 void Save();