/* * Copyright 2014 Giuliano Bertoti * Released under the MIT license * github.com/giulianobertoti */ import java.util.List; import java.util.LinkedList; import com.db4o.Db4oEmbedded; import com.db4o.ObjectContainer; import com.db4o.ObjectSet; import com.db4o.query.Query; public class Store implements Subject{ private List<Observer> observers = new LinkedList<Observer>(); ObjectContainer phones = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), "c:/lab3/mvcREST.db4o"); public void registerObserver(Observer o){ observers.add(o); } public void notifyObservers(ObjectSet result){ for(Observer o : observers){ o.update(result); } } public void addPhone(Phone cel){ phones.store(cel); } public void searchPhoneByOS(String system){ Query query=phones.query(); query.descend("os").constrain(system); ObjectSet result = query.execute(); notifyObservers(result); } public void delPhone(String system){ Query query=phones.query(); query.descend("os").constrain(system); ObjectSet result = query.execute(); if(!result.isEmpty()){ Phone cel = (Phone) result.next(); phones.delete(cel); } notifyObservers(result); } }