1#ifndef RESTLINK_PARAMETERLIST_H
2#define RESTLINK_PARAMETERLIST_H
4#include <RestLink/global.h>
5#include <RestLink/parameter.h>
7#include <QtCore/qlist.h>
8#include <QtCore/qvariant.h>
12template<
typename P = Parameter>
19 bool contains(
const QString &name)
const;
20 QVariant value(
const QString &name)
const;
21 QVariantList values(
const QString &name)
const;
22 P parameter(
const QString &name)
const;
24 void setParameter(
const QString &name,
const QVariant &value);
25 void setParameter(
const QString &name,
const QVariantList &values);
26 void setParameter(
const P ¶m);
28 void addParameter(
const QString &name,
const QVariant &value);
29 void addParameter(
const QString &name,
const QVariantList &values);
30 void addParameter(
const P ¶m);
32 void removeParameter(
const QString &name);
33 void removeParameter(
const QString &name,
const QVariant &value);
34 void removeParameter(
const QString &name,
const QVariantList &values);
39 P newParameter(
const QString &name,
const QVariantList &values)
const;
41 typename QList<P>::ConstIterator find(
const QString &name,
bool *found)
const;
42 typename QList<P>::Iterator find(
const QString &name,
bool *found);
68 auto it = find(name, &found);
69 return (found && !it->values().isEmpty() ? it->values().first() : QVariant());
76 auto it = find(name, &found);
77 return (found ? it->values() : QVariantList());
84 auto it = find(name, &found);
85 return (found ? *it : P());
91 setParameter(newParameter(name, {value}));
97 setParameter(newParameter(name, values));
104 auto it = find(param.name(), &found);
107 it->setValues(param.values());
115 addParameter(newParameter(name, {value}));
121 addParameter(newParameter(name, values));
128 auto it = find(param.name(), &found);
131 it->addValue(param.values());
139 removeParameter(name, QVariantList());
145 removeParameter(name, { value });
152 auto it = find(name, &found);
154 if (found && (values.isEmpty() || it->values() == values))
155 this->removeAt(std::distance(this->begin(), it));
163 param.setValues(values);
168typename QList<P>::Iterator ParameterList<P>::find(
const QString &name,
bool *found)
170 auto it = std::find_if(this->begin(), this->end(), [&name](
const Parameter ¶m) {
171 return param.name() == name;
174 *found = (it != this->end() ? true :
false);
179typename QList<P>::ConstIterator ParameterList<P>::find(
const QString &name,
bool *found)
const
181 auto it = std::find_if(this->begin(), this->end(), [&name](
const Parameter ¶m) {
182 return param.name() == name;
185 *found = (it != this->end() ? true :
false);
Definition parameterlist.h:14
QVariant value(const QString &name) const
Definition parameterlist.h:65
void addParameter(const QString &name, const QVariant &value)
Definition parameterlist.h:113
P parameter(const QString &name) const
Definition parameterlist.h:81
QVariantList values(const QString &name) const
Definition parameterlist.h:73
QList< P > parameters() const
ParameterList()
Definition parameterlist.h:46
void removeParameter(const QString &name)
Definition parameterlist.h:137
bool contains(const QString &name) const
Definition parameterlist.h:57
void setParameter(const QString &name, const QVariant &value)
Definition parameterlist.h:89
Definition abstractrequesthandler.cpp:11