53 return (v1.name == v2.name && v1.value == v2.value);
72 String x = m_parameters_dictionary.
find(key);
76 void addParameter(
const String& name,
const String& value)
82 if (name.startsWith(
"//")) {
83 m_parameters_option_list.add({ name, value });
84 m_parameter_option->addParameter(m_parameters_option_list[m_parameters_option_list.size() - 1].name, m_parameters_option_list[m_parameters_option_list.size() - 1].value);
88 m_parameters_dictionary.add(name, value);
89 m_parameters_list.add({ name, value });
90 m_parameter_option->addParameter(m_parameters_list[m_parameters_list.size() - 1].name, m_parameters_list[m_parameters_list.size() - 1].value);
93 void setParameter(
const String& name,
const String& value)
99 if (name.startsWith(
"//")) {
100 ARCANE_FATAL(
"Set parameter not supported for ParameterOptions.");
103 m_parameters_dictionary.add(name, value);
106 auto comparer = [=](
const NameValuePair& nv) {
return nv.name == name; };
107 auto new_end = std::remove_if(m_parameters_list.begin(), m_parameters_list.end(), comparer);
108 m_parameters_list.resize(new_end - m_parameters_list.begin());
111 void removeParameter(
const String& name,
const String& value)
116 if (name.startsWith(
"//")) {
117 ARCANE_FATAL(
"Remove parameter not supported for ParameterOptions.");
123 String x = m_parameters_dictionary.find(name);
124 bool need_fill =
false;
126 m_parameters_dictionary.remove(name);
132 auto new_end = std::remove(m_parameters_list.begin(), m_parameters_list.end(), ref_value);
133 m_parameters_list.resize(new_end - m_parameters_list.begin());
135 _fillDictionaryWithValueInList(name);
139 m_parameters_dictionary.fill(param_names, values);
140 for (
const auto& [name, value] : m_parameters_option_list) {
141 param_names.add(name);
143 std::cout <<
"FILL name='" << name <<
"' value='" << value <<
"'\n";
147 ParameterOptionElementsCollection* getParameterOption()
const
149 return m_parameter_option.get();
154 void _fillDictionaryWithValueInList(
const String& name)
156 for (
auto& nv : m_parameters_list)
158 m_parameters_dictionary.add(nv.name, nv.value);
163 StringDictionary m_parameters_dictionary;
164 UniqueArray<NameValuePair> m_parameters_list;
165 UniqueArray<NameValuePair> m_parameters_option_list;
166 Ref<ParameterOptionElementsCollection> m_parameter_option;