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 CreateNewChildPluginConfigurationCommand implements ConfigEditorCommand {
   private final PluginConfigurationDictionary pluginConfigurationDictionary;
   private final MutablePluginConfiguration childPluginConfiguration;

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

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