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
Modifier and TypeInterfaceDescriptionstatic interface
Any value that implements this interface will automatically be closed when its store goes out of scope.static class
-
Method Summary
Modifier and TypeMethodDescriptionCreate a new store for storing and retrieving values and objects in lifecycle hooks and lifecycle-dependent methods.Create a "free" store, i.e. one that lives independently from a test run, property or try.get()
Retrieve a store that must be created somewhere else.getOrCreate
(Object identifier, Lifespan lifespan, Supplier<T> initialValueSupplier) Find an existing store or create a new one if it doesn't exist.lifespan()
void
reset()
void
-
Method Details
-
get
T get() -
lifespan
Lifespan lifespan() -
update
-
reset
@API(status=INTERNAL, since="1.6.3") void reset() -
create
static <T extends @Nullable Object> Store<T> create(Object identifier, Lifespan lifespan, Supplier<T> initialValueSupplier) 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 lifespaninitialValueSupplier
- Supplies the value to be used for initializing the store depending on its lifespan- Returns:
- New store instance
-
getOrCreate
static <T extends @Nullable Object> Store<T> getOrCreate(Object identifier, Lifespan lifespan, Supplier<T> initialValueSupplier) 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
- A stored object's lifespaninitialValueSupplier
- Supplies the value to be used for initializing the store depending on its lifespan- Returns:
- New or existing store instance
-
get
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 extends @Nullable Object> Store<T> free(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
-