package com.csound.wizard.model; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map.Entry; import com.csound.wizard.App; public class CacheState { private HashMap<String, TrackState> table; public CacheState() { table = new HashMap<String, TrackState>(); } public void put(String key, TrackState value) { table.put(key, value); } public TrackState get(String key) { return table.get(key); } public boolean containsKey(String key) { return table.containsKey(key); } public void remove(String key) { table.remove(key); } public void saveToDisk() { for (Object x: table.entrySet()) { Entry<String, TrackState> entry = (Entry<String, TrackState>) x; saveCurrentStateToDisk(entry.getKey(), entry.getValue()); } } private void createIfNotPresentStateDirectory(String trackName) { File dir = new File(App.getCurrentStateDir(trackName)); if (!dir.exists()) { dir.mkdir(); } } private void saveCurrentStateToDisk(String trackName, TrackState value) { createIfNotPresentStateDirectory(trackName); try { value.save(App.getCurrentStateFileName(trackName)); } catch (IOException e) { e.printStackTrace(); } } }