Package studentrepoloader.filesystem


package studentrepoloader.filesystem
Provides infrastructure for organizing and preparing local directories for Git-based student submissions.

This package defines:

  • The SubmissionPathPlanner interface, which models strategies for mapping VilleSubmissionFields instances to unique local Paths under a shared root directory.
  • Concrete planners such as:
  • The utility class DirectoryUtils, which provides file system helpers used throughout the cloning and logging infrastructure, such as:
    • Safe creation of directories and log files
    • Log file writing with configurable append behavior
    • Detection of previously cloned repositories via presence of .git/

All path planner strategies return immutable Map<Submission, Path> objects and guarantee that no duplicate paths are emitted. Runtime path collisions will trigger explicit exceptions.

This package is consumed primarily by SubmissionCloner and invoked from entry points like Launcher.