Lab3 #2

Merged
bytegrip merged 6 commits from lab3 into master 2023-10-17 21:36:00 +00:00
7 changed files with 88 additions and 10 deletions
Showing only changes of commit 3589237e33 - Show all commits

View File

@@ -0,0 +1,9 @@
package org.lumijiez.base;
import java.nio.file.Path;
public class ArbitraryFile extends Document{
public ArbitraryFile(Path path) {
super(path);
}
}

View File

@@ -0,0 +1,9 @@
package org.lumijiez.base;
import java.nio.file.Path;
public class CodeFile extends Document{
public CodeFile(Path path) {
super(path);
}
}

View File

@@ -3,31 +3,57 @@ package org.lumijiez.base;
import org.lumijiez.enums.FileType;
import org.lumijiez.interfaces.IDocument;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Date;
public class Document implements IDocument {
private String fullFilename = "";
public class Document extends File implements IDocument {
private String extension;
private FileType fileType;
private Date createdAt;
private Date modifiedAt;
@Override
public String getFilename() {
return null;
public Document(Path path) {
super(path.toString());
init();
}
private void init() {
int lastDotIndex = getName().lastIndexOf('.');
extension = (lastDotIndex > 0) ? getName().substring(lastDotIndex + 1) : "";
fileType = FileType.getFileType(extension);
}
@Override
public String getExtension() {
return null;
return extension;
}
@Override
public Date getCreatedTime() {
try {
BasicFileAttributes fileAttributes = Files.readAttributes(Path.of(this.getPath()), BasicFileAttributes.class);
return new Date(fileAttributes.creationTime().toMillis());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
public Date getModificationTime() {
try {
BasicFileAttributes fileAttributes = Files.readAttributes(Path.of(this.getPath()), BasicFileAttributes.class);
return new Date(fileAttributes.lastAccessTime().toMillis());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
public FileType getFileType() {
return fileType;
}
}

View File

@@ -0,0 +1,9 @@
package org.lumijiez.base;
import java.nio.file.Path;
public class ImageFile extends Document{
public ImageFile(Path path) {
super(path);
}
}

View File

@@ -0,0 +1,9 @@
package org.lumijiez.base;
import java.nio.file.Path;
public class TextFile extends Document {
public TextFile(Path path) {
super(path);
}
}

View File

@@ -4,8 +4,22 @@ import java.util.ArrayList;
import java.util.List;
public enum FileType {
IMAGE, PLAINTEXT, FILE, CODE;
IMAGE("Image"), PLAINTEXT("Plaintext"), FILE("File"), CODE("Code"), NONE("None");
public List<String> typeExtensions;
public final String typeName;
FileType(String typeName) {
this.typeName = typeName;
}
public static FileType getFileType(String extension) {
for (FileType fileType : values()) {
if (fileType.typeExtensions.contains(extension.toLowerCase())) {
return fileType;
}
}
return NONE;
}
static {
IMAGE.typeExtensions = new ArrayList<>(List.of("jpg", "png"));

View File

@@ -1,10 +1,12 @@
package org.lumijiez.interfaces;
import org.lumijiez.enums.FileType;
import java.util.Date;
public interface IDocument {
public String getFilename();
public String getExtension();
public Date getCreatedTime();
public Date getModificationTime();
public FileType getFileType();
}