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; } }