Class ContextualStorage

java.lang.Object
org.apache.myfaces.cdi.util.ContextualStorage
All Implemented Interfaces:
Serializable

public class ContextualStorage extends Object implements Serializable
This Storage holds all information needed for storing Contextual Instances in a Context. It also addresses Serialisation in case of passivating scopes.
See Also:
  • Field Details

    • contextualInstances

      protected Map<Object,ContextualInstanceInfo<?>> contextualInstances
    • beanNameToKeyMapping

      protected Map<String,Object> beanNameToKeyMapping
    • beanManager

      protected jakarta.enterprise.inject.spi.BeanManager beanManager
    • concurrent

      protected boolean concurrent
    • passivating

      protected boolean passivating
    • activated

      protected transient volatile boolean activated
  • Constructor Details

    • ContextualStorage

      public ContextualStorage()
    • ContextualStorage

      public ContextualStorage(jakarta.enterprise.inject.spi.BeanManager beanManager, boolean concurrent, boolean passivating)
      Parameters:
      beanManager - is needed for serialisation
      concurrent - whether the ContextualStorage might get accessed concurrently by different threads
      passivating - whether the served scope is a passivating scope
  • Method Details

    • getStorage

      public Map<Object,ContextualInstanceInfo<?>> getStorage()
      Returns:
      the underlying storage map.
    • clear

      public void clear()
    • isConcurrent

      public boolean isConcurrent()
      Returns:
      whether the ContextualStorage might get accessed concurrently by different threads.
    • createContextualInstance

      public <T> T createContextualInstance(jakarta.enterprise.context.spi.Contextual<T> bean, jakarta.enterprise.context.spi.CreationalContext<T> creationalContext)
      Type Parameters:
      T -
      Parameters:
      bean -
      creationalContext -
      Returns:
    • getBeanKey

      public <T> Object getBeanKey(jakarta.enterprise.context.spi.Contextual<T> bean)
      If the context is a passivating scope then we return the passivationId of the bean. Otherwise we use the bean directly, this is mainly for Quarkus.
      Parameters:
      bean -
      Returns:
      the key to use in the context map
    • getBean

      public jakarta.enterprise.context.spi.Contextual<?> getBean(Object beanKey)
      Restores the bean from its beanKey. It returns null if the beanKey does not belong to a bean or is not Contextual.
      See Also:
    • isActivated

      public boolean isActivated()
    • activate

      public void activate()
    • deactivate

      public void deactivate()
    • getBeanNameToKeyMapping

      public Map<String,Object> getBeanNameToKeyMapping()