From c10c91ec1e883c75784951b95dfa4026757f1bd2 Mon Sep 17 00:00:00 2001 From: Notmoo Date: Mon, 31 Jul 2017 18:59:47 +0200 Subject: [PATCH] =?UTF-8?q?Module=20Server,=20clss=20FileStockDao=20:=20ut?= =?UTF-8?q?ilisation=20d'un=20ISerialFileManager=20pour=20g=C3=A9rer=20les?= =?UTF-8?q?=20IO=20du=20fichier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pqt/server/module/stock/FileStockDao.java | 66 ++----------------- 1 file changed, 7 insertions(+), 59 deletions(-) diff --git a/Workspace/server/src/main/WEB-INF/classes/com/pqt/server/module/stock/FileStockDao.java b/Workspace/server/src/main/WEB-INF/classes/com/pqt/server/module/stock/FileStockDao.java index 5095676c..8248719a 100644 --- a/Workspace/server/src/main/WEB-INF/classes/com/pqt/server/module/stock/FileStockDao.java +++ b/Workspace/server/src/main/WEB-INF/classes/com/pqt/server/module/stock/FileStockDao.java @@ -1,16 +1,17 @@ package com.pqt.server.module.stock; import com.pqt.core.entities.product.Product; -import com.pqt.server.tools.FileUtil; import com.pqt.server.tools.entities.SaleContent; +import com.pqt.server.tools.io.ISerialFileManager; +import com.pqt.server.tools.io.SimpleSerialFileManagerFactory; -import java.io.*; import java.util.*; //TODO écrire Javadoc public class FileStockDao implements IStockDao { private static final String STOCK_FILE_NAME = "stock.pqt"; + private ISerialFileManager fileManager; private long nextProductId; private Random random; @@ -18,6 +19,7 @@ public class FileStockDao implements IStockDao { public FileStockDao() { random = new Random(); + fileManager = SimpleSerialFileManagerFactory.getFileManager(Product.class, STOCK_FILE_NAME); loadFromFile(); generateNextProductId(); } @@ -120,66 +122,12 @@ public class FileStockDao implements IStockDao { } private void loadFromFile() { - products = new HashMap<>(load()); - } - - private Map load(){ Map loadedData = new HashMap<>(); - try{ - if(FileUtil.createFileIfNotExist(STOCK_FILE_NAME)){ - return loadedData; - } - }catch(IOException e){ - e.printStackTrace(); - return loadedData; - } - - try(FileInputStream fis = new FileInputStream(STOCK_FILE_NAME); - ObjectInputStream ois = new ObjectInputStream(fis)){ - - boolean end = false; - do{ - try{ - Object obj = ois.readObject(); - if(Product.class.isInstance(obj)){ - Product p = Product.class.cast(obj); - loadedData.put(p.getId(), p); - } - }catch (EOFException e){ - end = true; - }catch(ClassNotFoundException | InvalidClassException e){ - e.printStackTrace(); - } - }while(!end); - }catch( IOException e){ - e.printStackTrace(); - } - return loadedData; + fileManager.loadListFromFile().forEach(product -> loadedData.put(product.getId(), product)); + products = new HashMap<>(loadedData); } private void saveToFile() { - save(this.products); - } - - private void save(Map products){ - try{ - FileUtil.createFileIfNotExist(STOCK_FILE_NAME); - }catch (IOException e){ - e.printStackTrace(); - return; - } - try(FileOutputStream fos = new FileOutputStream(STOCK_FILE_NAME); - ObjectOutputStream oos = new ObjectOutputStream(fos)){ - - products.values().stream().forEach(p -> { - try { - oos.writeObject(p); - } catch (IOException e) { - e.printStackTrace(); - } - }); - }catch(IOException e){ - e.printStackTrace(); - } + fileManager.saveListToFile(new ArrayList<>(products.values())); } }