package database.wallet; import java.util.Observable; import java.util.Observer; import java.util.Set; import org.mapdb.DB; import utils.ObserverMessage; public class AssetFavoritesSet extends Observable { private WalletDatabase walletDatabase; private Set<Long> assetsSet; public AssetFavoritesSet(WalletDatabase walletDatabase, DB database) { this.walletDatabase = walletDatabase; //OPEN MAP this.assetsSet = database.getTreeSet("assetFavorites"); //CHECK IF CONTAINS QORA if(!this.assetsSet.contains(0l)) { this.add(0l); } } public void add(Long key) { this.assetsSet.add(key); this.walletDatabase.commit(); //NOTIFY this.notifyFavorites(); } public void delete(Long key) { this.assetsSet.remove(key); this.walletDatabase.commit(); //NOTIFY this.notifyFavorites(); } public boolean contains(Long key) { return this.assetsSet.contains(key); } @Override public void addObserver(Observer o) { //ADD OBSERVER super.addObserver(o); //NOTIFY LIST this.notifyFavorites(); } private void notifyFavorites() { this.setChanged(); this.notifyObservers(new ObserverMessage(ObserverMessage.LIST_ASSET_FAVORITES_TYPE, this.assetsSet)); } }