+ 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.Paths;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -19,9 +19,6 @@ public class Tools {
}
/**
* Convert BufferedReader to String.
*
@ -54,8 +51,6 @@ public class Tools {
}
public List<String> fileToLines(File file) {
String filePath = file.getPath();
List<String> lines = null;
@ -68,28 +63,17 @@ public class Tools {
}
public Map<String, SyncFile> mapMinus(Map<String, SyncFile> fromA, Map<String, SyncFile> substractB) {
public List<SyncFile> mapMinus(Map<String, SyncFile> fromA,
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
Map<String, SyncFile> difference = new HashMap<>();
for (Map.Entry<String, SyncFile> entry : fromA.entrySet()) {
String key = entry.getKey();
if (fromA.containsKey(key) && !substractB.containsKey(key)) {
SyncFile file = fromA.get(key);
difference.add(file);
difference.put(key, file);
}
}
return difference;
}
@ -110,8 +94,7 @@ public class Tools {
* @param path <i>String</i>
* @param sb <i>StringBuilder</i>
*/
public void writeSbToFile(String path,
StringBuilder sb) {
public void writeSbToFile(String path, StringBuilder sb) {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(new File(path)));
bw.write(sb.toString());
@ -128,13 +111,14 @@ public class Tools {
* @param path <i>String</i>
* @param list <i>StringBuilder</i>
*/
public void writeStringListToFile(String path,
List<String> list) {
public void writeStringListToFile(String path, List<String> list) {
File file = new File(path);
File parent = new File(file.getParent());
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;
public String path = null;
public List<SyncFile> listCreated = new ArrayList<>();
public List<SyncFile> listDeleted = new ArrayList<>();
public List<SyncFile> listModified = new ArrayList<>();
public Map<String, SyncFile> listCreated = new HashMap<>();
public Map<String, SyncFile> listDeleted = new HashMap<>();
public Map<String, SyncFile> listModified = new HashMap<>();
Tools tools = new Tools();
@ -116,8 +116,6 @@ public class SyncDirectory {
listDeleted = tools.mapMinus(fromA, substractB);
}
@ -125,9 +123,9 @@ public class SyncDirectory {
* Compare the OLD and NEW pools.
* 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();
for (var freshFileEntry : readFreshState().entrySet()) {
@ -141,7 +139,7 @@ public class SyncDirectory {
if (stateFileMap.containsKey(freshFileKey)) {
if (freshFile.getTimeModified() > freshFile.getTimeModifiedFromStateFile()) {
listModified.add(freshFile);
listModified.put(freshFileKey, freshFile);
}
}
}
@ -206,7 +204,8 @@ public class SyncDirectory {
public void doCreate() {
for (SyncFile createdFile : listCreated) {
for (var entry : listCreated.entrySet()) {
SyncFile createdFile = entry.getValue();
for (var otherEntry : syncMap.syncDirectories.entrySet()) {
SyncDirectory otherSD = otherEntry.getValue();
@ -226,7 +225,8 @@ public class SyncDirectory {
*/
public void doDelete() {
for (SyncFile deletedFile : listDeleted) {
for (var entry: listDeleted.entrySet()) {
SyncFile deletedFile = entry.getValue();
for (var otherEntry : syncMap.syncDirectories.entrySet()) {
SyncDirectory otherSD = otherEntry.getValue();
@ -255,7 +255,8 @@ public class SyncDirectory {
public void doModify() {
for (SyncFile modifiedFile : this.listModified) {
for (var entry : listModified.entrySet()) {
SyncFile modifiedFile = entry.getValue();
for (var otherEntry : syncMap.syncDirectories.entrySet()) {
SyncDirectory otherSD = otherEntry.getValue();

Loading…
Cancel
Save