@NormalScope(passivating=true) @Inherited @Documented @Target(value=TYPE) @Retention(value=RUNTIME) public @interface FlowScoped
FlowScoped is a CDI scope that causes the runtime to
consider classes with this annotation to be in the scope of the
specified Flow
. The implementation must provide an
implementation of javax.enterprise.inject.spi.Extension
that
implements the semantics such that beans with this annotation are
created lazily, when referenced,
after the user enters into the specified Flow
, and
made available for garbage
collection when the user exits the specified Flow
.
See FlowHandler.transition(javax.faces.context.FacesContext, javax.faces.flow.Flow, javax.faces.flow.Flow, javax.faces.flow.FlowCallNode, java.lang.String)
for the specification of flow
entry and exit.
When replacing (rather than decorating) the flow
implementation with a custom FlowHandler
implementation, it is necessary
to also replace the CDI extension that implements the specified
behavior regarding FlowScoped
beans.
Modifier and Type | Required Element and Description |
---|---|
java.lang.String |
value
Must be equivalent to the |
Modifier and Type | Optional Element and Description |
---|---|
java.lang.String |
definingDocumentId
|
public abstract java.lang.String value
Must be equivalent to the Flow.getId()
of a defined flow for this application.
public abstract java.lang.String definingDocumentId
If not empty, declare the defining
document id within which the Flow
referenced by value()
is unique. If empty the, the runtime assumes that all flow
ids are unique within the scope of the application.