kDB: Knowledge DataBase
Loading...
Searching...
No Matches
FocusNodeDeclaration.h
1#pragma once
2
3#include <optional>
4
5#include <QExplicitlySharedDataPointer>
6
7#include <kDB/Forward.h>
8
9namespace kDB::Repository::RDF
10{
11 struct FocusNodeDeclarationsRegistryPrivate;
17 {
19 struct Private;
20 public:
22 {
23 friend struct Private;
25 public:
26 enum class Variety
27 {
28 Optional,
29 Atomic,
30 List,
31 Map
32 };
33 enum class Direction
34 {
35 Direct,
36 Reverse
37 };
38 public:
39 Property();
40 Property(const Property& _rhs);
41 Property& operator=(const Property& _rhs);
42 ~Property();
43 bool operator==(const Property& _rhs);
44 bool operator!=(const Property& _rhs);
49 bool isConstant() const;
53 Variety variety() const;
57 Direction direction() const;
58 std::optional<std::size_t> minimum() const;
59 std::optional<std::size_t> maximum() const;
60 QString name() const;
61 knowCore::Uri path() const;
62 knowCore::Uri datatype() const;
63 knowRDF::Literal value() const;
64 knowRDF::Literal defaultValue() const;
68 std::optional<QList<knowCore::Uri>> acceptedUnits() const;
72 std::optional<knowCore::ValueList> acceptedValues() const;
73 private:
74 struct Private;
75 QExplicitlySharedDataPointer<Private> d;
76 };
77 public:
78 FocusNodeDeclaration();
79 FocusNodeDeclaration(const FocusNodeDeclaration& _rhs);
80 FocusNodeDeclaration& operator=(const FocusNodeDeclaration& _rhs);
81 ~FocusNodeDeclaration();
85 bool inherits(const knowCore::Uri& _uri);
93 knowCore::Uri type() const;
97 bool hasField(const knowCore::Uri& _uri);
101 cres_qresult<Property> field(const knowCore::Uri& _uri);
105 QList<Property> fields() const;
106 private:
107 QExplicitlySharedDataPointer<Private> d;
108 };
109} // namespace kDB::Repository::RDF
Definition Revision.h:9
Definition FocusNodeDeclaration.h:22
bool isConstant() const
Definition FocusNodeDeclaration.cpp:34
std::optional< knowCore::ValueList > acceptedValues() const
Definition FocusNodeDeclaration.cpp:56
Direction direction() const
Definition FocusNodeDeclaration.cpp:38
Variety variety() const
Definition FocusNodeDeclaration.cpp:36
std::optional< QList< knowCore::Uri > > acceptedUnits() const
Definition FocusNodeDeclaration.cpp:54
Variety
Definition FocusNodeDeclaration.h:27
Definition FocusNodeDeclaration.h:17
cres_qresult< Property > field(const knowCore::Uri &_uri)
Definition FocusNodeDeclaration.cpp:84
QList< knowCore::Uri > inheritedTypes() const
Definition FocusNodeDeclaration.cpp:78
bool inherits(const knowCore::Uri &_uri)
Definition FocusNodeDeclaration.cpp:73
bool hasField(const knowCore::Uri &_uri)
Definition FocusNodeDeclaration.cpp:82
QList< Property > fields() const
Definition FocusNodeDeclaration.cpp:96
knowCore::Uri type() const
Definition FocusNodeDeclaration.cpp:80
Definition Uri.h:15
Definition Literal.h:14
Definition FocusNodeDeclaration_p.h:25
Definition FocusNodeDeclarationsRegistry.cpp:26