package de.gecheckt.pdf.umbenenner.bootstrap.startup;

/**
 * Enumerates the supported application startup modes.
 * <p>
 * The startup mode is determined from the raw CLI arguments by
 * {@link CliArgumentParser} and carried in {@link StartupArguments}.
 * Bootstrap uses the mode to select the appropriate inbound adapter
 * for the current process.
 * <p>
 * Exactly one mode is active per process run. The default mode when
 * no explicit option is present is {@link #GUI}.
 */
public enum StartupMode {

    /**
     * GUI startup mode.
     * <p>
     * Selected when the {@code --headless} option is absent from the command line.
     * Directs Bootstrap to start the JavaFX desktop adapter. This is the
     * default startup mode for interactive use.
     */
    GUI,

    /**
     * Headless batch/scheduler startup mode.
     * <p>
     * Activated via the {@code --headless} CLI option. Directs Bootstrap to
     * start the existing batch-processing CLI adapter without any GUI
     * initialization. Suitable for automated execution via a task scheduler.
     */
    HEADLESS
}
