package org.jetbrains.plugins.cucumber; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.cucumber.psi.GherkinFeature; import org.jetbrains.plugins.cucumber.psi.GherkinStep; public interface StepDefinitionCreator { /** * Creates step definition file * @param dir where to create file * @param name of created file * @return PsiFile object of created file */ @NotNull PsiFile createStepDefinitionContainer(@NotNull final PsiDirectory dir, @NotNull final String name); /** * Creates step definition * @param step to implement * @param file where to create step definition * @return true if success, false otherwise */ boolean createStepDefinition(@NotNull final GherkinStep step, @NotNull final PsiFile file); /** * Validates name of new step definition file * @param fileName name of file to check * @return true if name is valid, false otherwise */ boolean validateNewStepDefinitionFileName(@NotNull final Project project, @NotNull final String fileName); @NotNull PsiDirectory getDefaultStepDefinitionFolder(@NotNull final GherkinStep step); @NotNull String getStepDefinitionFilePath(@NotNull final PsiFile file); /** * Provides default name of step definition file * @param step step we want to create definition container for * @return String representing default name of step definition file */ @NotNull String getDefaultStepFileName(@NotNull GherkinStep step); }