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 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.Map 'from' supertype to 'to' subtype.Creates a new instance of settings by merging given settings with these settings.set
(@NotNull SettingKey key, @Nullable Object value) Set the setting with the given key to the specified value.
-
Method Details
-
create
Creates a new instance of empty settings.- Returns:
- empty settings
-
defaults
Creates a new instance containing default settings.- Returns:
- settings containing defaults
-
from
Create settings from the given map.- Parameters:
map
- to create settings from- Returns:
- settings
-
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
- to setvalue
- to set- Returns:
- updated settings
-
mapType
Map 'from' supertype to 'to' subtype.- Parameters:
from
- supertype classto
- subtype class- Returns:
- updated 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:
- read-only settings
-