package org.chartsy.main.managers; import java.util.ArrayList; import org.chartsy.main.data.Stock; /** * * @author viorel.gheba */ public class StockManager { private static StockManager instance; //private static Logger LOG = Logger.getLogger(StockManager.class.getPackage().getName()); private ArrayList<Stock> stocks; //private String path; public static StockManager getDefault() { if (instance == null) instance = new StockManager(); return instance; } private StockManager() { stocks = new ArrayList<Stock>(); } public void addStock(Stock stock) { //readExternal(); if (!stocks.contains(stock)) stocks.add(stock); //writeExternal(); } public boolean hasStock(Stock stock) { //readExternal(); return stocks.contains(stock); } public Stock getStock(Stock stock) { //readExternal(); for (Stock s : stocks) if (s.equals(stock)) return s; return null; } /*public void writeExternal() { try { OutputStream outFile = new FileOutputStream(path); OutputStream outBuffer = new BufferedOutputStream(outFile); ObjectOutput OUT = new ObjectOutputStream(outBuffer); try { int size = stocks.size(); OUT.writeInt(size); if (size > 0) { for (int i = 0; i < size; i++) { Stock stock = stocks.get(i); if (stock instanceof Serializable) { OUT.writeObject(stock); } } } stocks.clear(); } finally { OUT.close(); } } catch (IOException ex) { LOG.log(Level.SEVERE, "Cannot perform output.", ex); } } public void readExternal() { try { InputStream inFile = new FileInputStream(path); InputStream inBuffer = new BufferedInputStream(inFile); ObjectInput IN = new ObjectInputStream(inBuffer); try { int size = IN.readInt(); if (size > 0) { stocks.ensureCapacity(size); for (int i = 0; i < size; i++) { Stock stock = (Stock) IN.readObject(); stocks.add(stock); } } } finally { IN.close(); } } catch(ClassNotFoundException ex) { LOG.log(Level.SEVERE, "Cannot perform input. Class not found.", ex); } catch(IOException ex) { LOG.log(Level.SEVERE, "Cannot perform input.", ex); } }*/ }