Class Stages
- java.lang.Object
-
- org.glassfish.jersey.process.internal.Stages
-
public final class Stages extends Object
A stage-related collection of utility methods.- Author:
- Marek Potociar
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Stages.LinkedStage<DATA>
Linked linear stage implementation.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <DATA,RESULT>
Stage<DATA>asStage(Inflector<DATA,RESULT> inflector)
Creates a terminalStage
that implementsInflecting
interface and returns the providedInflector
instance when theInflecting.inflector()
method is called.static <DATA> Stage.Builder<DATA>
chain(Function<DATA,DATA> transformation)
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
process(DATA data, Stage<DATA> rootStage)
Run the data through a chain of stages identified by the root stage.static <DATA,RESULT,T extends Inflector<DATA,RESULT>>
DATAprocess(DATA data, Stage<DATA> rootStage, org.glassfish.jersey.internal.util.collection.Ref<T> inflectorRef)
Run the data through a chain of stages identified by the root stage.
-
-
-
Method Detail
-
identity
public static <DATA> ChainableStage<DATA> 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
public static <DATA,RESULT> Stage<DATA> asStage(Inflector<DATA,RESULT> inflector)
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
public static <DATA,RESULT,T extends Inflector<DATA,RESULT>> T extractInflector(Object stage)
(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
public static <DATA> Stage.Builder<DATA> chain(Function<DATA,DATA> transformation)
Start building a stage chain.- Parameters:
transformation
- root transformation function.- Returns:
- linear accepting chain builder.
-
chain
public static <DATA> Stage.Builder<DATA> chain(ChainableStage<DATA> rootStage)
Start building a stage chain.- Parameters:
rootStage
- rootchainable linear stage
.- Returns:
- linear accepting chain builder.
-
process
public static <DATA> DATA process(DATA data, Stage<DATA> rootStage)
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,T extends Inflector<DATA,RESULT>> DATA process(DATA data, Stage<DATA> rootStage, org.glassfish.jersey.internal.util.collection.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.
-
-