Package org.instancio.settings
Interface Settings
- All Known Implementing Classes:
InternalSettings
public interface Settings
This class provides an API for updating settings programmatically.
An instance of this class can be created using one of the static methods
below. Instances of this class can be shared when creating different objects.
create()
- returns a new instance of blank settingsdefaults()
- returns a new instance containing default settings
Out of the box, Instancio uses default settings as returned by defaults()
.
Defaults can be overridden either globally using a configuration file, or per-object
using the API, for example:
// Create a blank instance of settings and set the overrides
Settings settings = Settings.create()
.set(Keys.COLLECTION_MIN_SIZE, 50)
.set(Keys.COLLECTION_MAX_SIZE, 100);
// Pass the overrides when creating an object
Person person = Instancio.of(Person.class)
.withSettings(settings)
.create();
For information on how to override settings globally using a configuration file, please refer to the user guide.
- Since:
- 1.0.1
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic Settings
create()
Creates a new instance of empty settings.static Settings
defaults()
Creates a new instance containing default settings.static Settings
Create settings from the given map.static Settings
Create settings from the given settings.<T> T
get
(@NotNull SettingKey<T> key) Get setting value for given key.Returns a read-only view of the subtype map.lock()
Locks these settings for further modifications, making this instance immutable.Maps the supertypefrom
supertype to 'to' subtype.Creates a new instance of settings by merging given settings with these settings.<T> Settings
set
(SettingKey<T> key, T value) Set the setting with the given key to the specified value.
-
Method Details
-
create
Creates a new instance of empty settings.- Returns:
- a new instance of empty settings
-
defaults
Creates a new instance containing default settings.- Returns:
- a new instance of settings containing the defaults
-
from
Create settings from the given map.- Parameters:
map
- to create settings from- Returns:
- a new instance of settings created from the given map
-
from
Create settings from the given settings.- Parameters:
other
- settings to create settings from- Returns:
- a new instance of settings
-
merge
Creates a new instance of settings by merging given settings with these settings.- Parameters:
other
- settings to merge- Returns:
- new instance of merged settings
-
get
Get setting value for given key.- Type Parameters:
T
- setting value type- Parameters:
key
- setting key- Returns:
- value for given key, or
null
if none.
-
set
Set the setting with the given key to the specified value.Note: when updating range settings (such as
Keys.COLLECTION_MIN_SIZE
andKeys.COLLECTION_MAX_SIZE
), range bounds are auto-adjusted byConstants.RANGE_ADJUSTMENT_PERCENTAGE
if the new minimum is higher than the current maximum, and vice versa.- Parameters:
key
- the key to set, notnull
value
- to set, can benull
- Returns:
- this instance of settings
-
mapType
Maps the supertypefrom
supertype to 'to' subtype.Example:
Settings settings = Settings.create() .mapType(Animal.class, Dog.class); Animal animal = Instancio.of(Animal.class) .withSettings(settings) .create(); assertThat(animal).isExactlyInstanceOf(Dog.class);
- Parameters:
type
- the type to map to a subtypesubtype
- the subtype class- Returns:
- this instance of settings
-
getSubtypeMap
Returns a read-only view of the subtype map.- Returns:
- subtype map
-
lock
Settings lock()Locks these settings for further modifications, making this instance immutable.- Returns:
- this instance of settings that can no longer be modified
-