added serialization

This commit is contained in:
2025-08-30 11:26:49 -04:00
parent dda4495a21
commit fd5a24af8e
13 changed files with 155 additions and 69 deletions

View File

@@ -0,0 +1,59 @@
package lodge.reservationsystem;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
final class DataRepository {
// SINGLETON CLASS
// hard code data store location for storage of
// account data files on filesystem
private String directoryPath;
private static final DataRepository instance = new DataRepository();
protected static DataRepository getInstance() {
return instance;
}
public final static void setDataStoreRoot(final String direcoryPath) {
getInstance().directoryPath = direcoryPath;
}
public final static String getPath() {
return getInstance().directoryPath;
}
public static void WalkFileSystemTree(final AccomodationManager manager, Path rootDir) throws IOException{
Files.walkFileTree(rootDir, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
System.out.println("File: " + file.toAbsolutePath());
// load account number, and content
if (attrs.isRegularFile()) {
String namestring = file.getName(file.getNameCount() - 1).toString();
if (namestring.endsWith("json")) {
if (namestring.startsWith("acc")) { // * load Account *//
try {
manager.load(file);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
// load reservation
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) {
System.out.println("Directory: " + dir.toAbsolutePath());
// prepare to load account number
return FileVisitResult.CONTINUE;
}
});
}
}