Class FileBasedConfig
- Direct Known Subclasses:
MockSystemReader.MockConfig
-
Nested Class Summary
Nested classes/interfaces inherited from class Config
Config.ConfigEnum, Config.SectionParser<T> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Fileprivate final FSprivate ObjectIdprivate static final org.slf4j.Loggerprivate FileSnapshotprivate boolean -
Constructor Summary
ConstructorsConstructorDescriptionFileBasedConfig(File cfgLocation, FS fs) Create a configuration with no default fallback.FileBasedConfig(Config base, File cfgLocation, FS fs) The constructor -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Clear the configuration filefinal FilegetFile()Get location of the configuration file on diskprivate static ObjectIdhash(byte[] rawText) booleanWhether the currently loaded configuration file is outdatedvoidload()Load the configuration from the persistent store.protected booleanDetermine whether to issue change events for transient changes.protected byte[]readIncludedConfig(String relPath) Read the included config from the specified (possibly) relative pathvoidsave()Save the configuration to the persistent store.toString()Methods inherited from class Config
addChangeListener, fireConfigChangedEvent, fromText, get, getBaseConfig, getBoolean, getBoolean, getEnum, getEnum, getInt, getInt, getLong, getLong, getNames, getNames, getNames, getNames, getPath, getRefSpecs, getSections, getString, getStringList, getSubsections, getTimeUnit, isMissing, isUtf8, setBoolean, setEnum, setInt, setLong, setString, setStringList, setTypedConfigGetter, toText, uncache, unset, unsetSection
-
Field Details
-
LOG
private static final org.slf4j.Logger LOG -
configFile
-
fs
-
utf8Bom
private boolean utf8Bom -
snapshot
-
hash
-
-
Constructor Details
-
FileBasedConfig
-
FileBasedConfig
-
-
Method Details
-
notifyUponTransientChanges
protected boolean notifyUponTransientChanges()Determine whether to issue change events for transient changes.If
trueis returned (which is the default behavior),Config.fireConfigChangedEvent()will be called upon each change.Subclasses that override this to return
falseare responsible for issuingConfig.fireConfigChangedEvent()calls themselves.- Overrides:
notifyUponTransientChangesin classConfig- Returns:
-
getFile
Get location of the configuration file on disk- Returns:
- location of the configuration file on disk
-
load
Load the configuration from the persistent store.If the configuration does not exist, this configuration is cleared, and thus behaves the same as though the backing store exists, but is empty.
Load the configuration as a Git text style configuration file.
If the file does not exist, this configuration is cleared, and thus behaves the same as though the file exists, but is empty.
- Specified by:
loadin classStoredConfig- Throws:
IOException- the configuration could not be read (but does exist).ConfigInvalidException- the configuration is not properly formatted.
-
save
Save the configuration to the persistent store.Save the configuration as a Git text style configuration file.
Warning: Although this method uses the traditional Git file locking approach to protect against concurrent writes of the configuration file, it does not ensure that the file has not been modified since the last read, which means updates performed by other objects accessing the same backing file may be lost.
- Specified by:
savein classStoredConfig- Throws:
IOException- the configuration could not be written.
-
clear
-
hash
-
toString
-
isOutdated
public boolean isOutdated()Whether the currently loaded configuration file is outdated- Returns:
- returns true if the currently loaded configuration file is older than the file on disk
-
readIncludedConfig
Read the included config from the specified (possibly) relative path- Overrides:
readIncludedConfigin classConfig- Parameters:
relPath- possibly relative path to the included config, as specified in this config- Returns:
- the read bytes, or null if the included config should be ignored
- Throws:
ConfigInvalidException- if something went wrong while reading the config- Since:
- 4.10
-