Package org.apache.myfaces.cdi.util
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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanactivatedprotected jakarta.enterprise.inject.spi.BeanManagerbeanManagerprotected Map<String,Object>beanNameToKeyMappingprotected booleanconcurrentprotected Map<Object,ContextualInstanceInfo<?>>contextualInstancesprotected booleanpassivating
-
Constructor Summary
Constructors Constructor Description ContextualStorage()ContextualStorage(jakarta.enterprise.inject.spi.BeanManager beanManager, boolean concurrent, boolean passivating)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactivate()voidclear()<T> TcreateContextualInstance(jakarta.enterprise.context.spi.Contextual<T> bean, jakarta.enterprise.context.spi.CreationalContext<T> creationalContext)voiddeactivate()jakarta.enterprise.context.spi.Contextual<?>getBean(Object beanKey)Restores the bean from its beanKey.<T> ObjectgetBeanKey(jakarta.enterprise.context.spi.Contextual<T> bean)If the context is a passivating scope then we return the passivationId of the bean.Map<String,Object>getBeanNameToKeyMapping()Map<Object,ContextualInstanceInfo<?>>getStorage()booleanisActivated()booleanisConcurrent()
-
-
-
Field Detail
-
contextualInstances
protected Map<Object,ContextualInstanceInfo<?>> contextualInstances
-
beanManager
protected jakarta.enterprise.inject.spi.BeanManager beanManager
-
concurrent
protected boolean concurrent
-
passivating
protected boolean passivating
-
activated
protected transient volatile boolean activated
-
-
Constructor Detail
-
ContextualStorage
public ContextualStorage()
-
ContextualStorage
public ContextualStorage(jakarta.enterprise.inject.spi.BeanManager beanManager, boolean concurrent, boolean passivating)- Parameters:
beanManager- is needed for serialisationconcurrent- whether the ContextualStorage might get accessed concurrently by different threadspassivating- whether the served scope is a passivating scope
-
-
Method Detail
-
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.
-
isActivated
public boolean isActivated()
-
activate
public void activate()
-
deactivate
public void deactivate()
-
-