package de.gecheckt.pdf.umbenenner.adapter.in.gui;

import java.nio.file.Path;

import de.gecheckt.pdf.umbenenner.adapter.in.gui.editor.GuiConfigurationEditorState;

/**
 * Loads a configuration file into a GUI editor state.
 * <p>
 * The interface allows Bootstrap to provide the concrete file-loading and migration logic
 * while the GUI only deals with editor states.
 */
@FunctionalInterface
public interface GuiConfigurationFileLoader {

    /**
     * Loads the configuration file at the given path.
     *
     * @param configFilePath the file to load; must not be {@code null}
     * @return the loaded editor state; never {@code null}
     */
    GuiConfigurationEditorState load(Path configFilePath);
}
