class DefaultPluginStatusProvider implements PluginStatusProvider {

    @Override
    public void enablePlugin(String pluginId) {
        if (!isPluginDisabled(pluginId)) {
            // do nothing
            return;
        }

        if (Files.exists(getEnabledFilePath())) {
            enabledPlugins.add(pluginId);

            try {
                FileUtils.writeLines(enabledPlugins, getEnabledFilePath());
            } catch (IOException e) {
                throw new PluginRuntimeException(e);
            }
        } else {
            disabledPlugins.remove(pluginId);

            try {
                FileUtils.writeLines(disabledPlugins, getDisabledFilePath());
            } catch (IOException e) {
                throw new PluginRuntimeException(e);
            }
        }
    }

    public  DefaultPluginStatusProvider(Path pluginsRoot);

}