54 return (v1.name == v2.name && v1.value == v2.value);
73 String x = m_parameters_dictionary.
find(key);
77 void addParameter(
const String& name,
const String& value)
83 if (name.startsWith(
"//")) {
84 m_parameters_option_list.add({ name, value });
85 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);
89 m_parameters_dictionary.add(name, value);
90 m_parameters_list.add({ name, value });
91 m_parameter_option->addParameter(m_parameters_list[m_parameters_list.size() - 1].name, m_parameters_list[m_parameters_list.size() - 1].value);
94 void setParameter(
const String& name,
const String& value)
100 if (name.startsWith(
"//")) {
101 ARCANE_FATAL(
"Set parameter not supported for ParameterOptions.");
104 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.");
122 String x = m_parameters_dictionary.find(name);
123 bool need_fill =
false;
125 m_parameters_dictionary.remove(name);
131 auto new_end = std::remove(m_parameters_list.begin(), m_parameters_list.end(), ref_value);
132 m_parameters_list.resize(new_end - m_parameters_list.begin());
134 _fillDictionaryWithValueInList(name);
138 m_parameters_dictionary.fill(param_names, values);
139 for (
const auto& [name, value] : m_parameters_option_list) {
140 param_names.add(name);
142 std::cout <<
"FILL name='" << name <<
"' value='" << value <<
"'\n";
146 ParameterOptionElementsCollection* getParameterOption()
const
148 return m_parameter_option.get();
153 void _fillDictionaryWithValueInList(
const String& name)
155 for (
auto& nv : m_parameters_list)
157 m_parameters_dictionary.add(nv.name, nv.value);
162 StringDictionary m_parameters_dictionary;
163 UniqueArray<NameValuePair> m_parameters_list;
164 UniqueArray<NameValuePair> m_parameters_option_list;
165 Ref<ParameterOptionElementsCollection> m_parameter_option;