Packages

c

net.liftweb.http

ContainerVar

abstract class ContainerVar[T] extends util.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.

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ContainerVar
  2. LazyLoggable
  3. AnyVar
  4. AnyVarTrait
  5. HasCalcDefaultValue
  6. PSettableValueHolder
  7. SettableValueHolder
  8. Settable
  9. PValueHolder
  10. ValueHolder
  11. AnyRef
  12. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. 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

  1. type CleanUpParam = LiftSession
    Definition Classes
    ContainerVarAnyVarTrait
  2. type FuncType = (Box[T], Boolean) ⇒ Unit

    The function takes a Box[T] (Full if the Var is being set, Empty if it's being cleared) and a Boolean indicating that the set function is setting to the default value.

    The function takes a Box[T] (Full if the Var is being set, Empty if it's being cleared) and a Boolean indicating that the set function is setting to the default value.

    Definition Classes
    AnyVarTrait
  3. type ValueType = T
    Definition Classes
    PValueHolderValueHolder

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def __nameSalt: String
    Attributes
    protected
    Definition Classes
    AnyVarTrait
  5. def apply(what: T): T

    Set the session variable

    Set the session variable

    what

    -- the value to set the session variable to

    Definition Classes
    AnyVarTrait
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def atomicUpdate(f: (ValueType) ⇒ ValueType): ValueType

    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

    Definition Classes
    Settable
  8. def calcDefaultValue: T
    Attributes
    protected
    Definition Classes
    AnyVarAnyVarTraitHasCalcDefaultValue
  9. def clearFunc(name: String): Unit
    Attributes
    protected
    Definition Classes
    ContainerVarAnyVarTrait
  10. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. 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
    ContainerVarAnyVarTrait
  12. def doWith[F](newVal: T)(f: ⇒ F): F

    Change the value of the Var for the lifespan of the function

    Change the value of the Var for the lifespan of the function

    Definition Classes
    AnyVarTrait
  13. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  15. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  16. def findFunc(name: String): Box[T]
    Attributes
    protected
    Definition Classes
    ContainerVarAnyVarTrait
  17. def get: T

    Shadow of the 'is' method

    Shadow of the 'is' method

    Definition Classes
    AnyVarTraitValueHolder
  18. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  19. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  20. def is: T

    The current value of the variable

    The current value of the variable

    Definition Classes
    AnyVarTrait
  21. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  22. lazy val logger: Logger
    Attributes
    protected
    Definition Classes
    LazyLoggable
    Annotations
    @transient()
  23. lazy val name: String
    Attributes
    protected
    Definition Classes
    AnyVarTrait
  24. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  25. final def notify(): Unit
    Definition Classes
    AnyRef
  26. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  27. def onChange(f: FuncType): Unit

    On any change to this Var, invoke the function.

    On any change to this Var, invoke the function. Changes are setting the value, clearing the value. There may not be a call if the Var goes out of scope (e.g., a RequestVar at the end of the Request).

    The function takes a Box[T] (Full if the Var is being set, Empty if it's being cleared) and a Boolean indicating that the set function is setting to the default value.

    The function should execute *very* quickly (e.g., Schedule a function to be executed on a different thread).

    The function should generally be set in Boot or when a singleton is created.

    f

    the function to execute on change

    Definition Classes
    AnyVarTrait
  28. def onShutdown(session: CleanUpParam): Unit
    Attributes
    protected
    Definition Classes
    AnyVarTrait
  29. def performAtomicOperation[T](f: ⇒ T): T

    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

    Definition Classes
    Settable
  30. def registerCleanupFunc(in: (LiftSession) ⇒ Unit): Unit
    Attributes
    protected
    Definition Classes
    ContainerVarAnyVarTrait
  31. final def registerGlobalCleanupFunc(in: (CleanUpParam) ⇒ Unit): Unit
    Attributes
    protected
    Definition Classes
    AnyVarTrait
  32. def remove(): Unit
    Definition Classes
    AnyVarTrait
  33. def set(what: T): T

    Shadow of the apply method

    Shadow of the apply method

    Definition Classes
    AnyVarTraitSettable
  34. def setFunc(name: String, value: T): Unit
    Attributes
    protected
    Definition Classes
    ContainerVarAnyVarTrait
  35. def setIfUnset(value: ⇒ T): T

    Set the Var if it has not been calculated

    Set the Var if it has not been calculated

    Definition Classes
    AnyVarTrait
  36. def set_?: Boolean

    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

    Definition Classes
    AnyVarTrait
  37. def settingDefault_?: Boolean
    Attributes
    protected
    Definition Classes
    AnyVarTrait
  38. def showWarningWhenAccessedOutOfSessionScope_?: Boolean
  39. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  40. def testWasSet(name: String, bn: String): Boolean

    A non-side-effecting test if the value was initialized

    A non-side-effecting test if the value was initialized

    Attributes
    protected
    Definition Classes
    ContainerVarAnyVarTrait
  41. def toString(): String
    Definition Classes
    AnyVarTrait → AnyRef → Any
  42. def update(f: (T) ⇒ T): T

    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.

    f

    -- the function to apply and set the result from.

    Definition Classes
    AnyVarTrait
  43. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  44. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  45. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  46. def wasInitialized(name: String, bn: String): Boolean
    Attributes
    protected
    Definition Classes
    ContainerVarAnyVarTrait

Inherited from LazyLoggable

Inherited from util.AnyVar[T, ContainerVar[T]]

Inherited from AnyVarTrait[T, ContainerVar[T]]

Inherited from HasCalcDefaultValue[T]

Inherited from PSettableValueHolder[T]

Inherited from SettableValueHolder

Inherited from Settable

Inherited from PValueHolder[T]

Inherited from ValueHolder

Inherited from AnyRef

Inherited from Any

Ungrouped