abstract class ContainerVar[T] extends AnyVar[T, ContainerVar[T]] with LazyLoggable
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.
- Alphabetic
- By Inheritance
- ContainerVar
- LazyLoggable
- AnyVar
- AnyVarTrait
- HasCalcDefaultValue
- PSettableValueHolder
- SettableValueHolder
- Settable
- PValueHolder
- ValueHolder
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new ContainerVar(dflt: => T)(implicit containerSerializer: ContainerSerializer[T])
- dflt
- the default value to be returned if none was set prior to requesting a value to be returned from the container
- containerSerializer
-- an implicit parameter that keeps us honest about only storing things that can be actually serialized. Lift provides a subset of these.
Type Members
- type CleanUpParam = LiftSession
- Definition Classes
- ContainerVar → AnyVarTrait
- type FuncType = (Box[T], Boolean) => Unit
- Definition Classes
- AnyVarTrait
- type ValueType = T
- Definition Classes
- PValueHolder → ValueHolder
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def __nameSalt: String
- Attributes
- protected
- Definition Classes
- AnyVarTrait
- def apply(what: T): T
- Definition Classes
- AnyVarTrait
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def atomicUpdate(f: (ValueType) => ValueType): ValueType
- Definition Classes
- Settable
- def calcDefaultValue: T
- Attributes
- protected
- Definition Classes
- AnyVar → AnyVarTrait → HasCalcDefaultValue
- def clearFunc(name: String): Unit
- Attributes
- protected
- Definition Classes
- ContainerVar → AnyVarTrait
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def doSync[F](f: => F): F
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.
- Definition Classes
- ContainerVar → AnyVarTrait
- def doWith[F](newVal: T)(f: => F): F
- Definition Classes
- AnyVarTrait
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def findFunc(name: String): Box[T]
- Attributes
- protected
- Definition Classes
- ContainerVar → AnyVarTrait
- def get: T
- Definition Classes
- AnyVarTrait → ValueHolder
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def is: T
- Definition Classes
- AnyVarTrait
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- lazy val logger: Logger
- Attributes
- protected
- Definition Classes
- LazyLoggable
- Annotations
- @transient()
- lazy val name: String
- Attributes
- protected
- Definition Classes
- AnyVarTrait
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def onChange(f: FuncType): Unit
- Definition Classes
- AnyVarTrait
- def onShutdown(session: CleanUpParam): Unit
- Attributes
- protected
- Definition Classes
- AnyVarTrait
- def performAtomicOperation[T](f: => T): T
- Definition Classes
- Settable
- def registerCleanupFunc(in: (LiftSession) => Unit): Unit
- Attributes
- protected
- Definition Classes
- ContainerVar → AnyVarTrait
- final def registerGlobalCleanupFunc(in: (CleanUpParam) => Unit): Unit
- Attributes
- protected
- Definition Classes
- AnyVarTrait
- def remove(): Unit
- Definition Classes
- AnyVarTrait
- def set(what: T): T
- Definition Classes
- AnyVarTrait → Settable
- def setFunc(name: String, value: T): Unit
- Attributes
- protected
- Definition Classes
- ContainerVar → AnyVarTrait
- def setIfUnset(value: => T): T
- Definition Classes
- AnyVarTrait
- def set_?: Boolean
- Definition Classes
- AnyVarTrait
- def settingDefault_?: Boolean
- Attributes
- protected
- Definition Classes
- AnyVarTrait
- def showWarningWhenAccessedOutOfSessionScope_?: Boolean
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def testWasSet(name: String, bn: String): Boolean
- Attributes
- protected
- Definition Classes
- ContainerVar → AnyVarTrait
- def toString(): String
- Definition Classes
- AnyVarTrait → AnyRef → Any
- def update(f: (T) => T): T
- Definition Classes
- AnyVarTrait
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def wasInitialized(name: String, bn: String): Boolean
- Attributes
- protected
- Definition Classes
- ContainerVar → AnyVarTrait