package model.persistance; import java.util.ArrayList; import java.util.List; import model.IliasFile; public class Settings { // old Settings path in registry // myPrefs = prefsRoot.node("DownloaderTool.preferences"); // methode to remove all entries: // public void removeNode() { // try { // myPrefs.removeNode(); // } catch (BackingStoreException e) { // e.printStackTrace(); // } // } private static final String ILIAS_STORE_FOLDER = System.getProperty("user.home") + "/" + ".ilias"; private static Settings instance; private Storer storer; private List<Storable> storableObjects; private User user; private Flags flags; private FileStates fileStates; private IliasFolderSettings iliasFolderSettings; private Settings() { storableObjects = new ArrayList<Storable>(); storer = new Storer(ILIAS_STORE_FOLDER); } public static Settings getInstance() { if (instance == null) { instance = new Settings(); } return instance; } public User getUser() { if (user == null) { user = (User) load(new User()); if (user == null) { user = new User(); } storableObjects.add(user); } return user; } public Flags getFlags() { if (flags == null) { flags = (Flags) load(new Flags()); if (flags == null) { flags = new Flags(); } storableObjects.add(flags); } return flags; } public FileStates getFileStates() { if (fileStates == null) { fileStates = (FileStates) load(new FileStates()); if (fileStates == null) { fileStates = new FileStates(); } storableObjects.add(fileStates); } return fileStates; } public IliasFolderSettings getIliasFolderSettings() { if (iliasFolderSettings == null) { iliasFolderSettings = (IliasFolderSettings) load(new IliasFolderSettings()); if (iliasFolderSettings == null) { iliasFolderSettings = new IliasFolderSettings(); } storableObjects.add(iliasFolderSettings); } return iliasFolderSettings; } public void toggleFileIgnored(IliasFile file) { if (file.isIgnored()) { file.setIgnored(false); } else { file.setIgnored(true); } } private Storable load(Storable storeable) { storeable = storer.load(storeable); return storeable; } public void store() { for (Storable storableObject : storableObjects) { storer.store(storableObject); } } }