package de.gecheckt.pdf.umbenenner.application.port.out;

/**
 * Wird geworfen, wenn der exklusive OS-Lock auf die Konfigurationsdatei
 * nicht erworben werden kann.
 * <p>
 * Typische Ursachen sind: ein externer Prozess hält die Datei bereits
 * gesperrt, ein Netzlaufwerk reagiert nicht innerhalb der Deadline,
 * oder die Datei ist nicht zugänglich.
 * <p>
 * Diese Ausnahme ist ungeprüft und wird vom Aufrufer
 * ({@link ConfigurationFileLockPort#acquireLock()}) in eine
 * benutzerfreundliche GUI-Meldung umgewandelt.
 */
public class ConfigurationFileLockException extends RuntimeException {

    /**
     * Erstellt eine neue {@code ConfigurationFileLockException} mit der
     * angegebenen Nachricht.
     *
     * @param message deutsche Fehlerbeschreibung
     */
    public ConfigurationFileLockException(String message) {
        super(message);
    }

    /**
     * Erstellt eine neue {@code ConfigurationFileLockException} mit
     * Nachricht und Ursache.
     *
     * @param message deutsche Fehlerbeschreibung
     * @param cause   technische Ursache
     */
    public ConfigurationFileLockException(String message, Throwable cause) {
        super(message, cause);
    }
}
