@Override public void saveStaging(Staging staging) { String filename = ".gitlet/objects/staging"; try (OutputStream file = new FileOutputStream(filename); OutputStream buffer = new BufferedOutputStream(file); ObjectOutput output = new ObjectOutputStream(buffer); ) { output.writeObject(staging.getFilesToAdd()); output.writeObject(staging.getFilesToRm()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
@SuppressWarnings("unchecked") @Override public Staging recoverStaging() { // String objDir = ".gitlet/objects/staging"; // File d = new File(objDir); // if(!d.exists()){ // throw new IllegalArgumentException("Gitlet not initialized!"); // } String filename = ".gitlet/objects/staging"; Staging recovered = null; File f = new File(filename); if (f.exists()) { try (InputStream file = new FileInputStream(filename); InputStream buffer = new BufferedInputStream(file); ObjectInput input = new ObjectInputStream(buffer); ) { List<String> filesToAdd = (List<String>) input.readObject(); List<String> filesToRm = (List<String>) input.readObject(); recovered = new Staging(); recovered.setFilesToAdd(filesToAdd); recovered.setFilesToRm(filesToRm); } catch (ClassNotFoundException ex) { fLogger.log(Level.SEVERE, "Cannot perform input. Class not found.", ex); } catch (IOException ex) { fLogger.log(Level.SEVERE, "Cannot perform input.", ex); } return recovered; } else { System.out.println("Staging object not found!"); return null; } }