43 return (v1.name==v2.name && v1.value==v2.value);
49 : m_parameter_option(
makeRef(new ParameterOptionElementsCollection()))
56 if (
const auto value = m_parameter_option->value(ParameterOptionAddr(key.
view().
subView(2))))
60 String x = m_parameters_dictionary.
find(key);
64 void addParameter(
const String& name,
const String& value)
70 if (name.startsWith(
"//")) {
71 m_parameters_option_list.add({ name, value });
72 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);
76 m_parameters_dictionary.add(name, value);
77 m_parameters_list.add({ name, value });
78 m_parameter_option->addParameter(m_parameters_list[m_parameters_list.size() - 1].name, m_parameters_list[m_parameters_list.size() - 1].value);
80 void setParameter(
const String& name,
const String& value)
86 if (name.startsWith(
"//")) {
87 ARCANE_FATAL(
"Set parameter not supported for ParameterOptions.");
90 m_parameters_dictionary.add(name,value);
93 auto comparer = [=](
const NameValuePair& nv){
return nv.name==name; };
94 auto new_end = std::remove_if(m_parameters_list.begin(),m_parameters_list.end(),comparer);
95 m_parameters_list.resize(new_end-m_parameters_list.begin());
97 void removeParameter(
const String& name,
const String& value)
102 if (name.startsWith(
"//")) {
103 ARCANE_FATAL(
"Remove parameter not supported for ParameterOptions.");
109 String x = m_parameters_dictionary.find(name);
110 bool need_fill =
false;
112 m_parameters_dictionary.remove(name);
118 auto new_end = std::remove(m_parameters_list.begin(),m_parameters_list.end(),ref_value);
119 m_parameters_list.resize(new_end-m_parameters_list.begin());
121 _fillDictionaryWithValueInList(name);
125 m_parameters_dictionary.fill(param_names, values);
126 for (
const auto& [name, value] : m_parameters_option_list) {
127 param_names.add(name);
131 ParameterOptionElementsCollection* getParameterOption()
const
133 return m_parameter_option.get();
137 void _fillDictionaryWithValueInList(
const String& name)
139 for(
auto& nv : m_parameters_list )
141 m_parameters_dictionary.add(nv.name,nv.value);
144 StringDictionary m_parameters_dictionary;
145 UniqueArray<NameValuePair> m_parameters_list;
146 UniqueArray<NameValuePair> m_parameters_option_list;
147 Ref<ParameterOptionElementsCollection> m_parameter_option;