<commit_before>package moe.tristan.easyfxml;

import javafx.application.Platform;
import javafx.fxml.Initializable;

import java.net.URL;
import java.util.ResourceBundle;

/**
 * This is a base interface for all controllers.
 * The {@link #initialize()} method is called by the
 * JavaFX {@link Platform} after all the component's
 * subcomponents have been loaded and are ready for usage.
 *
 * Never use the constructor to do any more than
 * dependency injection as the components are not
 * guaranteed to have been loaded yet and generally
 * result in the infamous {@link NullPointerException}.
 */
public interface FxmlController extends Initializable {
    /**
     * This method is automatically called by the JavaFX {@link Platform}
     * as soon as all the components are loaded (not necessarily rendered).
     * This is where initial UX/UI setup should be done (enabling, disabling
     * hiding etc...)
     *
     * Calling it from the constructor is a hazard and will generally cause
     * failures.
     */
    void initialize();

    /**
     * As this class is basically an explicit version of what {@link Initializable} is
     * nowadays because the parameters here are injected by JavaFX, we still offer the
     * following method for override should you have advanced needs for it.
     *
     * Should not be used though. (see {@link Initializable})
     *
     * JDK documentation for this :
     * {@inheritDoc}
     */
    @Override
    default void initialize(final URL location, final ResourceBundle resources) {
        throw new RuntimeException("This needs to be implemented if it is to be used.");
    }
}<commit_msg>Not using Initializable as it causes issues downstream.<commit_after>package moe.tristan.easyfxml;

import javafx.application.Platform;

/**
 * This is a base interface for all controllers.
 * The {@link #initialize()} method is called by the
 * JavaFX {@link Platform} after all the component's
 * subcomponents have been loaded and are ready for usage.
 *
 * Never use the constructor to do any more than
 * dependency injection as the components are not
 * guaranteed to have been loaded yet and generally
 * result in the infamous {@link NullPointerException}.
 */
public interface FxmlController {
    /**
     * This method is automatically called by the JavaFX {@link Platform}
     * as soon as all the components are loaded (not necessarily rendered).
     * This is where initial UX/UI setup should be done (enabling, disabling
     * hiding etc...)
     *
     * Calling it from the constructor is a hazard and will generally cause
     * failures.
     */
    void initialize();
}
{'fraction_non_alphanumeric': 0.0718608169440242, 'fraction_numerical': 0.0, 'mean_word_length': 3.293831168831169, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 5}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3830190', 'n_tokens_mistral': 656, 'n_tokens_neox': 639, 'n_words': 323}