package org.jetbrains.plugins.ruby.ruby.run.configuration; import com.intellij.openapi.util.Key; import org.jdom.Element; import org.jetbrains.annotations.NotNull; public class CollectTypeExecSettings { @NotNull public static final String COLLECT_TYPE_EXEC_ENABLED = "collectTypeExecEnabled"; @NotNull private static final Key<CollectTypeExecSettings> COLLECT_TYPE_EXEC_SETTINGS = new Key<>("CollectTypeExecSettings"); public boolean isCollectTypeExecEnabled; @NotNull public static CollectTypeExecSettings getFrom(@NotNull final AbstractRubyRunConfiguration configuration) { final CollectTypeExecSettings data = configuration.getCopyableUserData(COLLECT_TYPE_EXEC_SETTINGS); return data != null ? data : createSettings(false); } public static void putTo(@NotNull final AbstractRubyRunConfiguration configuration, @NotNull final CollectTypeExecSettings settings) { configuration.putCopyableUserData(COLLECT_TYPE_EXEC_SETTINGS, settings); } public static CollectTypeExecSettings createSettings(final boolean enabled) { final CollectTypeExecSettings settings = new CollectTypeExecSettings(); settings.isCollectTypeExecEnabled = enabled; return settings; } public static CollectTypeExecSettings readExternal(@NotNull final Element element) { return createSettings(Boolean.valueOf(element.getAttributeValue(COLLECT_TYPE_EXEC_ENABLED))); } public void writeExternal(@NotNull final Element element) { element.setAttribute(COLLECT_TYPE_EXEC_ENABLED, String.valueOf(isCollectTypeExecEnabled)); } }