package com.airlock.iam.plugin.configeditor.command;

import com.airlock.iam.plugin.framework.application.configuration.MutablePluginConfiguration;
import com.airlock.iam.plugin.framework.misc.config.PluginConfigurationDictionary;
import java.util.Objects;

public class CreateNewUnconnectedPluginConfigurationCommand implements ConfigEditorCommand {
   private final PluginConfigurationDictionary pluginConfigurationDictionary;
   private final MutablePluginConfiguration pluginConfiguration;

   public CreateNewUnconnectedPluginConfigurationCommand(
      PluginConfigurationDictionary pluginConfigurationDictionary, MutablePluginConfiguration pluginConfiguration
   ) {
      Objects.requireNonNull(pluginConfigurationDictionary, "pluginConfigurationDictionary must not be null");
      Objects.requireNonNull(pluginConfiguration, "pluginConfiguration must not be null");
      this.pluginConfigurationDictionary = pluginConfigurationDictionary;
      this.pluginConfiguration = pluginConfiguration;
   }

   @Override
   public final void execute() {
      this.pluginConfigurationDictionary.addConfigTreeRootPluginConfiguration(this.pluginConfiguration);
   }
}
