Package net.jqwik.api.lifecycle
Interface Store<T>
-
@API(status=EXPERIMENTAL, since="1.2.3") public interface Store<T>
Experimental feature. Not ready for public usage yet.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
Store.StoreFacade
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description static <T> Store<T>
create(java.lang.Object identifier, Lifespan lifespan, java.util.function.Supplier<T> initializer)
Create a new store for storing and retrieving values and objects in lifecycle hooks and lifecycle-dependent methods.static <T> Store<T>
free(java.util.function.Supplier<T> initializer)
Create a "free" store, i.e. one that lives independently from a test run, property or try.T
get()
static <T> Store<T>
get(java.lang.Object identifier)
Retrieve a store that must be created somewhere else.static <T> Store<T>
getOrCreate(java.lang.Object identifier, Lifespan lifespan, java.util.function.Supplier<T> initializer)
Find an existing store or create a new one if it doesn't exist.Lifespan
lifespan()
Store<T>
onClose(java.util.function.Consumer<T> onCloseCallback)
void
reset()
void
update(java.util.function.Function<T,T> updater)
-
-
-
Method Detail
-
get
T get()
-
lifespan
Lifespan lifespan()
-
reset
void reset()
-
onClose
@API(status=EXPERIMENTAL, since="1.2.4") Store<T> onClose(java.util.function.Consumer<T> onCloseCallback)
-
create
static <T> Store<T> create(java.lang.Object identifier, Lifespan lifespan, java.util.function.Supplier<T> initializer)
Create a new store for storing and retrieving values and objects in lifecycle hooks and lifecycle-dependent methods.Stores are created with respect to the current test / property. Therefore you _must not save created stores in member variables_, unless the containing object is unique per test / property.
- Type Parameters:
T
- The type of object to store- Parameters:
identifier
- Any object to identify a store. Must be globally unique and stable, i.e. hashCode and equals must not change.lifespan
- A stored object's lifespaninitializer
- Supplies the value to be used for initializing the store depending on its lifespan- Returns:
- New store instance
-
getOrCreate
static <T> Store<T> getOrCreate(java.lang.Object identifier, Lifespan lifespan, java.util.function.Supplier<T> initializer)
Find an existing store or create a new one if it doesn't exist.Stores are created with respect to the current test / property. Therefore you _must not save created stores in member variables_, unless the containing object is unique per test / property.
- Type Parameters:
T
- The type of object to store- Parameters:
identifier
- Any object to identify a store. Must be globally unique and stable, i.e. hashCode and equals must not change.lifespan
-initializer
- Supplies the value to be used for initializing the store depending on its lifespan- Returns:
- New or existing store instance
-
get
static <T> Store<T> get(java.lang.Object identifier)
Retrieve a store that must be created somewhere else.- Type Parameters:
T
- The type of object to store- Parameters:
identifier
- Any object to identify a store. Must be globally unique and stable, i.e. hashCode and equals must not change.- Returns:
- Existing store instance
- Throws:
CannotFindStoreException
-
free
@API(status=EXPERIMENTAL, since="1.5.0") static <T> Store<T> free(java.util.function.Supplier<T> initializer)
Create a "free" store, i.e. one that lives independently from a test run, property or try.- Type Parameters:
T
- The type of object to store- Parameters:
initializer
- Supplies the value to be used for initializing the store depending on its lifespan- Returns:
- New store instance
-
-