Package net.jqwik.api.state
Interface Transformer<T>
- Type Parameters:
- T- The type of state to be transformed in a chain
- All Superinterfaces:
- Function<@NotNull T,- @NotNull T> 
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface
@API(status=EXPERIMENTAL,
     since="1.7.0")
public interface Transformer<T>
extends Function<@NotNull T,@NotNull T> 
A transformer is used to transform a state of type 
T into another value of this type.
 Transformation can create a new object, or change the inner state of an object and return it.
 In addition to performing a state transformation the mutator function can also check or assert conditions and invariants that should hold when doing the transformation. This is especially useful when a transformer is used as part of an action.
- See Also:
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final Transformer<?>The singleton object used for all calls to endOfChain().static final Transformer<?>The singleton object used for all calls to noop().
- 
Method SummaryModifier and TypeMethodDescriptionstatic <T> Transformer<T>Use this transformer to stop further enhancement of a chain.default booleanstatic <S> Transformer<S>Convenience method to create a transformer with a description.static <T> Transformer<T>noop()Use this transformer to signal a noop transformation.static <S> Transformer<S>Create a transformer with a descriptiondefault StringDescribe the transformation this Transformer is doing in a human understandable way.
- 
Field Details- 
END_OF_CHAINThe singleton object used for all calls to endOfChain().
- 
NOOPThe singleton object used for all calls to noop().
 
- 
- 
Method Details- 
endOfChainUse this transformer to stop further enhancement of a chain.Whenever a endOfChain() is chosen by a chain, the chain ends with the current state being provided (e.g. in the chain's iterator) for a last time. - Type Parameters:
- T- The transformer's state value type
- Returns:
- a transformer instance
 
- 
noopUse this transformer to signal a noop transformation. This can be useful when a Transformation wants to provide a transformer that does nothing in some circumstances.Noop transformers are ignored and not added to the chain of transformers. - Type Parameters:
- T- The transformer's state value type
- Returns:
- a transformer instance
 
- 
transformCreate a transformer with a description- Type Parameters:
- S- The type of the state to transform
- Parameters:
- description- A text to describe what the transform is doing
- transform- The actual transforming function
- Returns:
- a new instance of a transformer
 
- 
mutateConvenience method to create a transformer with a description. A mutator works on a mutable, stateful object which will always be returned.- Type Parameters:
- S- The type of the state to mutate
- Parameters:
- description- A text to describe what the transform is doing
- mutate- The actual mutating operation
- Returns:
- a new instance of a transformer
 
- 
transformationDescribe the transformation this Transformer is doing in a human understandable way.- Returns:
- non-empty String
 
- 
isEndOfChaindefault boolean isEndOfChain()
 
-