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 classStages.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 terminalStagethat implementsInflectinginterface and returns the providedInflectorinstance 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 aninflectorfrom a processing stage, provided the stage implementsInflectinginterface.static <DATA> ChainableStage<DATA>identity()Get a chainable "identity" stage.static <DATA> DATAprocess(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 terminalStagethat implementsInflectinginterface and returns the providedInflectorinstance 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 aninflectorfrom a processing stage, provided the stage implementsInflectinginterface. 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,
nullotherwise.
-
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 theinflectorRefparameter.- 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.
-
-