Class Stages
java.lang.Object
org.glassfish.jersey.process.internal.Stages
A stage-related collection of utility methods.
- Author:
- Marek Potociar
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Linked linear stage implementation. -
Method Summary
Modifier and TypeMethodDescriptionstatic <DATA,
RESULT>
Stage<DATA>Creates a terminalStage
that implementsInflecting
interface and returns the providedInflector
instance when theInflecting.inflector()
method is called.static <DATA> Stage.Builder<DATA>
Start building a stage chain.static <DATA> Stage.Builder<DATA>
chain
(ChainableStage<DATA> rootStage) Start building a stage chain.static <DATA,
RESULT, T extends Inflector<DATA, RESULT>>
TextractInflector
(Object stage) (Optionally) extracts aninflector
from a processing stage, provided the stage implementsInflecting
interface.static <DATA> ChainableStage<DATA>
identity()
Get a chainable "identity" stage.static <DATA> DATA
Run the data through a chain of stages identified by the root stage.static <DATA,
RESULT, T extends Inflector<DATA, RESULT>>
DATARun the data through a chain of stages identified by the root stage.
-
Method Details
-
identity
Get a chainable "identity" stage. This stage, when applied returns the unmodified input data object as part of it's continuation.- Type Parameters:
DATA
- data type transformable by the stage.- Returns:
- identity stage.
-
asStage
Creates a terminalStage
that implementsInflecting
interface and returns the providedInflector
instance when theInflecting.inflector()
method is called.- Type Parameters:
DATA
- data type transformable by the stage and returned inflector.RESULT
- type of result produced by a successful inflector data transformation.- Parameters:
inflector
- a request to response transformation to be wrapped in a stage.- Returns:
- a stage that wraps the supplied
Inflector
.
-
extractInflector
(Optionally) extracts aninflector
from a processing stage, provided the stage implementsInflecting
interface. Otherwise method returnsnull
.- Type Parameters:
DATA
- data type transformable by the stage and returned inflector.RESULT
- type of result produced by a successful inflector data transformation.- Parameters:
stage
- a stage to extract the inflector from.- Returns:
- extracted inflector if present,
null
otherwise.
-
chain
Start building a stage chain.- Parameters:
transformation
- root transformation function.- Returns:
- linear accepting chain builder.
-
chain
Start building a stage chain.- Parameters:
rootStage
- rootchainable linear stage
.- Returns:
- linear accepting chain builder.
-
process
Run the data through a chain of stages identified by the root stage.- Type Parameters:
DATA
- processed data type.- Parameters:
data
- data to be processed.rootStage
- root stage of the stage chain.- Returns:
- processing result.
-
process
public static <DATA,RESULT, DATA processT extends Inflector<DATA, RESULT>> (DATA data, Stage<DATA> rootStage, Ref<T> inflectorRef) Run the data through a chain of stages identified by the root stage. If an inflector is found in the leaf stage, it's reference is set into theinflectorRef
parameter.- Type Parameters:
DATA
- processed data type.- Parameters:
data
- data to be processed.rootStage
- root stage of the stage chain.inflectorRef
- a mutable reference to an inflector.- Returns:
- processing result.
-