Class FlatFileStorage
- All Implemented Interfaces:
Closeable
-
Field Summary
FieldsFields inherited from class ch.njol.skript.variables.VariablesStorage
backupTask, closed, connectionLock, databaseName, file -
Method Summary
Modifier and TypeMethodDescriptionprotected voidCalled after all storages have been loaded, and variables have been redistributed if settings have changed.voidclose()Called when Skript gets disabled.protected final booleanconnect()(Re)connects to the database.protected final voidDisconnects from the database.protected FileGets the file needed for this variable storage from the given file name.protected booleanload_i(SectionNode sectionNode) Loads the variables in the CSV file.protected booleanChecks if this storage requires a file for storing its data.protected booleanSaves a variable.final voidsaveVariables(boolean finalSave) Completely rewrites the CSV file.Methods inherited from class ch.njol.skript.variables.VariablesStorage
clearChangesQueue, getValue, getValue, load, startBackupTask
-
Field Details
-
FILE_CHARSET
TheCharsetused in the CSV storage file.
-
-
Method Details
-
load_i
Loads the variables in the CSV file.Doesn't lock the connection, as required by
Variables.variableLoaded(String, Object, VariablesStorage).- Specified by:
load_iin classVariablesStorage- Returns:
- Whether the database could be loaded successfully, i.e. whether the config is correct and all variables could be loaded.
-
allLoaded
protected void allLoaded()Description copied from class:VariablesStorageCalled after all storages have been loaded, and variables have been redistributed if settings have changed. This should commit the first transaction (which is not empty if variables have been moved from another database to this one or vice versa), and start repeating transactions if applicable.- Specified by:
allLoadedin classVariablesStorage
-
requiresFile
protected boolean requiresFile()Description copied from class:VariablesStorageChecks if this storage requires a file for storing its data.- Specified by:
requiresFilein classVariablesStorage- Returns:
- if this storage needs a file.
-
getFile
Description copied from class:VariablesStorageGets the file needed for this variable storage from the given file name.Will only be called if
VariablesStorage.requiresFile()istrue.- Specified by:
getFilein classVariablesStorage- Parameters:
fileName- the given file name.- Returns:
- the
Fileobject.
-
disconnect
protected final void disconnect()Description copied from class:VariablesStorageDisconnects from the database.- Specified by:
disconnectin classVariablesStorage
-
connect
protected final boolean connect()Description copied from class:VariablesStorage(Re)connects to the database.Not called on the first connect: do this in
VariablesStorage.load_i(SectionNode). An error should be printed by this method prior to returningfalse.- Specified by:
connectin classVariablesStorage- Returns:
- whether the connection could be re-established.
-
close
public void close()Description copied from class:VariablesStorageCalled when Skript gets disabled.The default implementation will wait for all variables to be saved before setting
VariablesStorage.closedtotrueand stopping thewrite thread.Therefore, make sure to call
super.close()if this method is overridden.- Specified by:
closein interfaceCloseable- Overrides:
closein classVariablesStorage
-
save
protected boolean save(String name, @Nullable @Nullable String type, @Nullable @org.jetbrains.annotations.Nullable byte[] value) Description copied from class:VariablesStorageSaves a variable.This is called from the main thread while variables are transferred between databases, and from the
VariablesStorage.writeThreadafterwards.typeandvalueare bothnulliff this call is to delete the variable.- Specified by:
savein classVariablesStorage- Parameters:
name- the name of the variable.type- the type of the variable.value- the serialized value of the variable.- Returns:
- Whether the variable was saved.
-
saveVariables
public final void saveVariables(boolean finalSave) Completely rewrites the CSV file.The
finalSaveargument is used to determine if thesaveandbackuptasks should be cancelled, and if the storage should reconnect after saving.- Parameters:
finalSave- whether this is the last save in this session or not.
-