- the default value to be returned if none was set prior to requesting a value to be returned from the container
-- an implicit parameter that keeps us honest about only storing things that can be actually serialized. Lift provides a subset of these.
Set the session variable
Set the session variable
-- the value to set the session variable to
Perform an atomic update of this Settable.
Perform an atomic update of this Settable. The current value is passed to the function and the ValueHolder is set to the result of the function. This is enclosed in the performAtomicOperation method which will, by default, synchronize this instance
Different Vars require different mechanisms for synchronization.
Different Vars require different mechanisms for synchronization. This method implements the Var specific synchronization mechanism.
In the case of ContainerVar, we don't need to do any explicit synchronization. Values are stored in the HttpSession, which already gives us atomic get and set operations.
Change the value of the Var for the lifespan of the function
Change the value of the Var for the lifespan of the function
Shadow of the 'is' method
Shadow of the 'is' method
The current value of the variable
The current value of the variable
Perform an atomic operation on the Settable.
Perform an atomic operation on the Settable. By default synchronizes the instance, but it could use other mechanisms
Shadow of the apply method
Shadow of the apply method
Set the Var if it has not been calculated
Set the Var if it has not been calculated
Has this Var been set or accessed and had its default value calculated
Has this Var been set or accessed and had its default value calculated
A non-side-effecting test if the value was initialized
A non-side-effecting test if the value was initialized
Applies the given function to the contents of this variable and sets the variable to the resulting value.
Applies the given function to the contents of this variable and sets the variable to the resulting value.
-- the function to apply and set the result from.
A typesafe container for data with a lifetime nominally equivalent to the lifetime of HttpSession attributes. This alternative to SessionVar keeps data in the container's session and must be serializable to support session migration. Use SessionVars unless you are using MigratoryLiftSessions.
object MySnippetCompanion { object mySessionVar extends ContainerVar[String]("hello") }
The standard pattern is to create a singleton object extending ContainerVar instead of creating an instance variable of a concrete ContainerVar subclass. This is preferred because ContainerVar will use the name of its instantiating class for part of its state maintenance mechanism.
If you find it necessary to create a ContainerVar subclass of which there may be more than one instance, it is necessary to override the nameSalt() method to return a unique salt value for each instance to prevent name collisions.