knowL: Knowledge Libraries
Loading...
Searching...
No Matches
ValueList.h
1#pragma once
2
3#include "Value.h"
4
5namespace knowCore
6{
8 {
9 public:
10 using const_iterator = QList<Value>::const_iterator;
11 public:
12 ValueList();
13 ValueList(const QList<Value>& _value);
14 ValueList(const ValueList& _list);
15 ValueList operator=(const ValueList& _list);
16 ~ValueList();
17 int size() const;
18 Value at(int _index) const;
19 template<typename _T_>
20 cres_qresult<_T_> at(int _index) const;
21 template<typename _T_>
22 cres_qresult<QList<_T_>> values() const;
23
24 bool operator==(const ValueList& _rhs) const;
25 bool operator==(const QList<Value>& _rhs) const;
26 Value operator[](std::size_t _index) const;
27
28 const_iterator begin() const;
29 const_iterator end() const;
30
34 bool contains(const knowCore::Value& _value) const;
35 template<typename _T_>
36 bool contains(const _T_& _value) const
37 {
39 }
40
41 cres_qresult<QByteArray> md5() const;
42 cres_qresult<QJsonValue> toJsonValue(const SerialisationContexts& _contexts) const;
43 static cres_qresult<ValueList> fromJsonValue(const QJsonValue& _value,
44 const DeserialisationContexts& _contexts);
45 cres_qresult<QCborValue> toCborValue(const SerialisationContexts& _contexts) const;
46 static cres_qresult<ValueList> fromCborValue(const QCborValue& _value,
47 const DeserialisationContexts& _contexts);
48 cres_qresult<QString> printable() const;
49 QList<Value> values() const;
56 cres_qresult<void> checkContainsOnly(const Uri& _uri) const;
57 template<typename _T_>
58 inline cres_qresult<void> checkContainsOnly() const;
62 operator Value() const { return Value::fromValue(*this); }
69 bool canConvertAllTo(const Uri& _uri) const;
70 template<typename _T_>
71 bool canConvertAllTo() const;
75 template<typename _T_>
76 inline static const ValueList fromValues(const QList<_T_>& _t);
77 static cres_qresult<ValueList> fromVariants(const QVariantList& _t);
81 QVariantList toVariantList() const;
85 QVariant toVariant() const;
86 private:
87 struct Private;
88 QSharedDataPointer<Private> d;
89 };
90
91 template<typename _T_>
92 cres_qresult<_T_> ValueList::at(int _index) const
93 {
94 return at(_index).template value<_T_>();
95 }
96 template<typename _T_>
97 cres_qresult<QList<_T_>> ValueList::values() const
98 {
99 QList<_T_> list;
100 for(int i = 0; i < size(); ++i)
101 {
102 cres_try(_T_ value, at<_T_>(i));
103 list.append(value);
104 }
105 return cres_success(list);
106 }
107 template<typename _T_>
108 cres_qresult<void> ValueList::checkContainsOnly() const
109 {
110 return checkContainsOnly(MetaTypeInformation<_T_>::uri());
111 }
112 template<typename _T_>
113 bool ValueList::canConvertAllTo() const
114 {
115 return canConvertAllTo(MetaTypeInformation<_T_>::uri());
116 }
117 template<typename _T_>
119 {
120 QList<Value> l;
121 std::transform(_t.begin(), _t.end(), std::back_inserter(l),
122 [](const _T_& _t) -> Value { return Value::fromValue(_t); });
123 return l;
124 }
125
126} // namespace knowCore
127
128KNOWCORE_CORE_DECLARE_FORMATTER_PRINTABLE(knowCore::ValueList);
129KNOWCORE_DECLARE_FULL_METATYPE(knowCore, ValueList);
Definition Forward.h:14
Definition MetaType.h:126
Definition MetaType.h:159
Definition Uri.h:15
Definition ValueList.h:8
cres_qresult< void > checkContainsOnly(const Uri &_uri) const
Definition ValueList.cpp:152
bool canConvertAllTo(const Uri &_uri) const
Definition ValueList.cpp:164
QVariantList toVariantList() const
Definition ValueList.cpp:187
static const ValueList fromValues(const QList< _T_ > &_t)
Definition ValueList.h:118
QVariant toVariant() const
Definition ValueList.cpp:195
bool contains(const knowCore::Value &_value) const
Definition ValueList.cpp:44
Definition Value.h:21
static Value fromValue(const _T_ &_value)
Definition Value.h:241