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

/**
 * Fabrik, die für einen gegebenen Prompt-Dateipfad einen {@link GuiPromptEditorPort} erzeugt.
 * <p>
 * Wird vom {@link GuiConfigurationEditorWorkspace} genutzt, um nach einem Konfigurations-Laden
 * oder -Speichern einen neuen Port für den {@link GuiPromptEditorTab} zu erstellen, ohne dass
 * der GUI-Adapter direkt von Bootstrap-internen Klassen abhängen muss.
 * <p>
 * Alle Implementierungen liegen in {@code pdf-umbenenner-bootstrap}.
 */
@FunctionalInterface
public interface GuiPromptEditorPortFactory {

    /**
     * Erzeugt einen {@link GuiPromptEditorPort} für den angegebenen Prompt-Dateipfad.
     *
     * @param promptFilePath konfigurierter Pfad zur Prompt-Datei; darf nicht {@code null} sein
     * @return vollständig verdrahteter Port; nie {@code null}
     */
    GuiPromptEditorPort create(String promptFilePath);
}
