Namespace org.visab.workspace
The workspace package contains Managers for manipulating persistent VISAB data. Manipulation examples are 1. Saving VISAB files 2. Deleting VISAB files 3. Saving Settings.
The IO operations required should be done seperately in repository classes with the Manager classes wrapping around them and provide validation checks.
Classes
BasicRepository
An instantiable repository base implementation.
ConfigManager
The ConfigManager that is used for loading mappings and settings aswell as modifying settings.
ConfigRepository
The ConfigRepository that is used for loading and saving Settings to the database.
DatabaseManager
The DatabaseManager that is used for deleting, adding, and removing VISAB files.
DatabaseRepository
A repository for loading, saving, and removing VISAB files from VISABs database.
Mapping
POJO representing a mapping configuration. Mappings are used by VISAB to determine where to find the implementations for which game. They are loaded once at the start of VISAB from the classMapping.json file. Each of these fields has the fully qualifying name of a java class as their value.
RepositoryBase
The base repository that all repositories should inherit from. Used for any I/O operations inside of VISAB. If you need to import any java IO libs in non repository classes, you are likely doing it wrong. Create a specific repository instead or check if there isnt a repositry implementation that supports your wanted functionality already.
SavedFileInformation
Represents the information when a file was saved.
UserSettings
Represents the settings that may be manipulated using VISABs Settings view. This class is serialized as json and written to the settings.json file.
Workspace
The VISAB workspace, from which config and database management can be done. It is the central point for modifying settings and deleting, adding, and renaming VISAB files. For consistency reasons, the only Manager instances should be the ones in the Workspace singelton instance.
Interfaces
IRepository
The IRepository interface that all Repositories have to implement. Repositories are used for I/O operations, so that we dont have to spread those accross the project.