diff --git a/Lab3/src/main/java/org/lumijiez/base/CodeFile.java b/Lab3/src/main/java/org/lumijiez/base/CodeFile.java
index db20eec..8d7a729 100644
--- a/Lab3/src/main/java/org/lumijiez/base/CodeFile.java
+++ b/Lab3/src/main/java/org/lumijiez/base/CodeFile.java
@@ -4,7 +4,7 @@ import org.lumijiez.util.Utils;
import java.nio.file.Path;
-public class CodeFile extends Document{
+public class CodeFile extends Document {
public CodeFile(Path path) {
super(path);
}
diff --git a/Lab3/src/main/java/org/lumijiez/base/Document.java b/Lab3/src/main/java/org/lumijiez/base/Document.java
index 2de230a..7b0c420 100644
--- a/Lab3/src/main/java/org/lumijiez/base/Document.java
+++ b/Lab3/src/main/java/org/lumijiez/base/Document.java
@@ -87,6 +87,12 @@ public class Document extends File implements IDocument {
@Override
public String getInfo() {
- return "Name: " + getName() + " Size: " + getFilesizeKB() + "Type: " + getFileType().getTypeName();
+ StringBuilder info = new StringBuilder();
+ info.append("Type: ").append(getFileType().getTypeName()).append("
");
+ info.append("Extension: ").append(getExtension().toUpperCase()).append("
");
+ info.append("File size: ").append(getFilesizeKB()).append(" KB").append("
");
+ info.append("Created at: ").append(getCreatedTime()).append("
");
+ info.append("Modified at: ").append(getModificationTime()).append("
");
+ return info.toString();
}
}
diff --git a/Lab3/src/main/java/org/lumijiez/enums/DiffType.java b/Lab3/src/main/java/org/lumijiez/enums/DiffType.java
index 55e060e..c58b690 100644
--- a/Lab3/src/main/java/org/lumijiez/enums/DiffType.java
+++ b/Lab3/src/main/java/org/lumijiez/enums/DiffType.java
@@ -2,7 +2,6 @@ package org.lumijiez.enums;
public enum DiffType {
CREATE(StateType.NEW), DELETE(StateType.DELETED), MODIFY(StateType.MODIFIED), NONE(StateType.NONE);
-
private final StateType type;
DiffType(StateType type) {
diff --git a/Lab3/src/main/java/org/lumijiez/tracker/TrackerThread.java b/Lab3/src/main/java/org/lumijiez/tracker/TrackerThread.java
index c281f9a..4f36273 100644
--- a/Lab3/src/main/java/org/lumijiez/tracker/TrackerThread.java
+++ b/Lab3/src/main/java/org/lumijiez/tracker/TrackerThread.java
@@ -71,12 +71,10 @@ public class TrackerThread extends Thread {
}
}
-
public void checkDirectory() {
- Map> result = FileDiffer.diff(fileContents, FileDiffer.crawlDirectory(MainFrame.FOLDER_PATH));
+ Map> result = FileDiffer.diff(fileContents, FileDiffer.crawlDirectory(MainFrame.FOLDER_PATH.toFile()));
StringBuilder toShow = new StringBuilder();
-
boolean somethingNew = false;
for (DiffType type : result.keySet()) {
diff --git a/Lab3/src/main/java/org/lumijiez/util/FileDiffer.java b/Lab3/src/main/java/org/lumijiez/util/FileDiffer.java
index 60e3844..d16b822 100644
--- a/Lab3/src/main/java/org/lumijiez/util/FileDiffer.java
+++ b/Lab3/src/main/java/org/lumijiez/util/FileDiffer.java
@@ -3,6 +3,7 @@ package org.lumijiez.util;
import org.lumijiez.base.Document;
import org.lumijiez.enums.DiffType;
+import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -56,4 +57,23 @@ public class FileDiffer {
}
return newFileContents;
}
+
+ public static Map crawlDirectory(File file) {
+ Map newFileContents = new HashMap<>();
+ try (Stream paths = Files.walk(file.toPath())) {
+ paths.forEach(p -> {
+ Document doc = new Document(p);
+ if (Files.isRegularFile(doc.toPath())) {
+ try {
+ newFileContents.put(doc, Files.readAllBytes(doc.toPath()));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ });
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return newFileContents;
+ }
}
diff --git a/Lab3/src/main/java/org/lumijiez/util/Utils.java b/Lab3/src/main/java/org/lumijiez/util/Utils.java
index 2a6f6bc..3a9536c 100644
--- a/Lab3/src/main/java/org/lumijiez/util/Utils.java
+++ b/Lab3/src/main/java/org/lumijiez/util/Utils.java
@@ -48,45 +48,44 @@ public class Utils {
}
public static int countClasses(Document doc) {
- try {
- int classCount = 0;
+ int classCount = 0;
+ try {
BufferedReader reader = new BufferedReader(new FileReader(doc));
String line;
while ((line = reader.readLine()) != null) {
- if (line.contains("class ")) {
+ if (line.matches(".*class\\s+\\w+.*") || line.matches(".*def\\s+\\w+.*")) {
classCount++;
}
}
+
reader.close();
- return classCount;
} catch (IOException e) {
e.printStackTrace();
}
- return 0;
+
+ return classCount;
}
public static int countMethods(Document doc) {
- try {
- int methodCount = 0;
+ int methodCount = 0;
+ try {
BufferedReader reader = new BufferedReader(new FileReader(doc));
String line;
while ((line = reader.readLine()) != null) {
- if (line.matches(".*\\b\\w+\\s+\\w+\\(.*\\)\\s*\\{.*")) {
- methodCount++;
- } else if (line.contains("def ")) {
+ if (line.matches(".*def\\s+\\w+.*") || line.matches(".*\\b(public|private|protected)?\\s+(static\\s+)?\\w+\\s+\\w+\\(.*\\)\\s*\\{.*")) {
methodCount++;
}
}
reader.close();
- return methodCount;
} catch (IOException e) {
e.printStackTrace();
}
- return 0;
+
+ return methodCount;
}
}