+ turn the lists into maps.

pull/1/head
Ivan Olexyn 5 years ago
parent 16ce5914cb
commit 27db1e2890

@ -6,7 +6,7 @@ import java.io.*;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -19,9 +19,6 @@ public class Tools {
} }
/** /**
* Convert BufferedReader to String. * Convert BufferedReader to String.
* *
@ -54,8 +51,6 @@ public class Tools {
} }
public List<String> fileToLines(File file) { public List<String> fileToLines(File file) {
String filePath = file.getPath(); String filePath = file.getPath();
List<String> lines = null; List<String> lines = null;
@ -68,28 +63,17 @@ public class Tools {
} }
public Map<String, SyncFile> mapMinus(Map<String, SyncFile> fromA, Map<String, SyncFile> substractB) {
Map<String, SyncFile> difference = new HashMap<>();
for (Map.Entry<String, SyncFile> entry : fromA.entrySet()) {
public List<SyncFile> mapMinus(Map<String, SyncFile> fromA, String key = entry.getKey();
Map<String, SyncFile> substractB) {
List<SyncFile> difference = new ArrayList<>();
Iterator iterator = fromA.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String key = (String) entry.getKey();
//String path
if (fromA.containsKey(key) && !substractB.containsKey(key)) { if (fromA.containsKey(key) && !substractB.containsKey(key)) {
SyncFile file = fromA.get(key); SyncFile file = fromA.get(key);
difference.add(file); difference.put(key, file);
} }
} }
return difference; return difference;
} }
@ -110,8 +94,7 @@ public class Tools {
* @param path <i>String</i> * @param path <i>String</i>
* @param sb <i>StringBuilder</i> * @param sb <i>StringBuilder</i>
*/ */
public void writeSbToFile(String path, public void writeSbToFile(String path, StringBuilder sb) {
StringBuilder sb) {
try { try {
BufferedWriter bw = new BufferedWriter(new FileWriter(new File(path))); BufferedWriter bw = new BufferedWriter(new FileWriter(new File(path)));
bw.write(sb.toString()); bw.write(sb.toString());
@ -128,13 +111,14 @@ public class Tools {
* @param path <i>String</i> * @param path <i>String</i>
* @param list <i>StringBuilder</i> * @param list <i>StringBuilder</i>
*/ */
public void writeStringListToFile(String path, public void writeStringListToFile(String path, List<String> list) {
List<String> list) {
File file = new File(path); File file = new File(path);
File parent = new File(file.getParent()); File parent = new File(file.getParent());
if (!parent.exists()) { if (!parent.exists()) {
x.execute(new String[]{"mkdir", "-p", parent.getPath()}); x.execute(new String[]{"mkdir",
"-p",
parent.getPath()});
} }

@ -21,9 +21,9 @@ public class SyncDirectory {
private SyncMap syncMap; private SyncMap syncMap;
public String path = null; public String path = null;
public List<SyncFile> listCreated = new ArrayList<>(); public Map<String, SyncFile> listCreated = new HashMap<>();
public List<SyncFile> listDeleted = new ArrayList<>(); public Map<String, SyncFile> listDeleted = new HashMap<>();
public List<SyncFile> listModified = new ArrayList<>(); public Map<String, SyncFile> listModified = new HashMap<>();
Tools tools = new Tools(); Tools tools = new Tools();
@ -116,8 +116,6 @@ public class SyncDirectory {
listDeleted = tools.mapMinus(fromA, substractB); listDeleted = tools.mapMinus(fromA, substractB);
} }
@ -125,9 +123,9 @@ public class SyncDirectory {
* Compare the OLD and NEW pools. * Compare the OLD and NEW pools.
* List is cleared and created each time. * List is cleared and created each time.
*/ */
public List<SyncFile> makeListModified() { public Map<String, SyncFile> makeListModified() {
listModified = new ArrayList<>(); listModified.clear();
Map<String, SyncFile> stateFileMap = readStateFile(); Map<String, SyncFile> stateFileMap = readStateFile();
for (var freshFileEntry : readFreshState().entrySet()) { for (var freshFileEntry : readFreshState().entrySet()) {
@ -141,7 +139,7 @@ public class SyncDirectory {
if (stateFileMap.containsKey(freshFileKey)) { if (stateFileMap.containsKey(freshFileKey)) {
if (freshFile.getTimeModified() > freshFile.getTimeModifiedFromStateFile()) { if (freshFile.getTimeModified() > freshFile.getTimeModifiedFromStateFile()) {
listModified.add(freshFile); listModified.put(freshFileKey, freshFile);
} }
} }
} }
@ -206,7 +204,8 @@ public class SyncDirectory {
public void doCreate() { public void doCreate() {
for (SyncFile createdFile : listCreated) { for (var entry : listCreated.entrySet()) {
SyncFile createdFile = entry.getValue();
for (var otherEntry : syncMap.syncDirectories.entrySet()) { for (var otherEntry : syncMap.syncDirectories.entrySet()) {
SyncDirectory otherSD = otherEntry.getValue(); SyncDirectory otherSD = otherEntry.getValue();
@ -226,7 +225,8 @@ public class SyncDirectory {
*/ */
public void doDelete() { public void doDelete() {
for (SyncFile deletedFile : listDeleted) { for (var entry: listDeleted.entrySet()) {
SyncFile deletedFile = entry.getValue();
for (var otherEntry : syncMap.syncDirectories.entrySet()) { for (var otherEntry : syncMap.syncDirectories.entrySet()) {
SyncDirectory otherSD = otherEntry.getValue(); SyncDirectory otherSD = otherEntry.getValue();
@ -255,7 +255,8 @@ public class SyncDirectory {
public void doModify() { public void doModify() {
for (SyncFile modifiedFile : this.listModified) { for (var entry : listModified.entrySet()) {
SyncFile modifiedFile = entry.getValue();
for (var otherEntry : syncMap.syncDirectories.entrySet()) { for (var otherEntry : syncMap.syncDirectories.entrySet()) {
SyncDirectory otherSD = otherEntry.getValue(); SyncDirectory otherSD = otherEntry.getValue();

Loading…
Cancel
Save