summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/RangeSet.cpp6
-rw-r--r--src/core/RangeSet.hpp7
-rw-r--r--src/core/model/Domain.cpp4
-rw-r--r--src/core/model/Domain.hpp4
-rw-r--r--src/plugins/xml/XmlParser.cpp2
5 files changed, 11 insertions, 12 deletions
diff --git a/src/core/RangeSet.cpp b/src/core/RangeSet.cpp
index c07dc9b..72953b0 100644
--- a/src/core/RangeSet.cpp
+++ b/src/core/RangeSet.cpp
@@ -20,13 +20,11 @@
namespace ousia {
-static Cardinality createAny()
+Cardinality Cardinality::any()
{
Cardinality any;
- any.merge(Range<size_t>::typeRangeFrom(0));
+ any.merge(Range<size_t>::typeRange());
return std::move(any);
}
-
-const Cardinality AnyCardinality = createAny();
}
diff --git a/src/core/RangeSet.hpp b/src/core/RangeSet.hpp
index f5b56e2..9310d72 100644
--- a/src/core/RangeSet.hpp
+++ b/src/core/RangeSet.hpp
@@ -417,9 +417,10 @@ public:
/**
* This is the default cardinality.
*/
-using Cardinality = RangeSet<size_t>;
-extern const Cardinality AnyCardinality;
-
+class Cardinality : public RangeSet<size_t> {
+public:
+ static Cardinality any();
+};
}
#endif /* _OUSIA_RANGE_SET_HPP_ */
diff --git a/src/core/model/Domain.cpp b/src/core/model/Domain.cpp
index 3284759..7d5a76e 100644
--- a/src/core/model/Domain.cpp
+++ b/src/core/model/Domain.cpp
@@ -320,7 +320,7 @@ StructuredClass::StructuredClass(Manager &mgr, std::string name,
Handle<StructuredClass> superclass,
bool transparent, bool root)
: Descriptor(mgr, std::move(name), domain),
- cardinality(std::move(cardinality)),
+ cardinality(cardinality),
superclass(acquire(superclass)),
subclasses(this),
transparent(transparent),
@@ -533,7 +533,7 @@ Rooted<StructuredClass> Domain::createStructuredClass(
bool transparent, bool root)
{
return Rooted<StructuredClass>{new StructuredClass(
- getManager(), std::move(name), this, std::move(cardinality), superclass,
+ getManager(), std::move(name), this, cardinality, superclass,
std::move(transparent), std::move(root))};
}
diff --git a/src/core/model/Domain.hpp b/src/core/model/Domain.hpp
index cd05441..53579bd 100644
--- a/src/core/model/Domain.hpp
+++ b/src/core/model/Domain.hpp
@@ -751,7 +751,7 @@ public:
*/
StructuredClass(Manager &mgr, std::string name,
Handle<Domain> domain = nullptr,
- Variant cardinality = AnyCardinality,
+ Variant cardinality = Cardinality::any(),
Handle<StructuredClass> superclass = nullptr,
bool transparent = false, bool root = false);
@@ -1010,7 +1010,7 @@ public:
* @return the newly created StructuredClass.
*/
Rooted<StructuredClass> createStructuredClass(
- std::string name, Variant cardinality = AnyCardinality,
+ std::string name, Variant cardinality = Cardinality::any(),
Handle<StructuredClass> superclass = nullptr, bool transparent = false,
bool root = false);
diff --git a/src/plugins/xml/XmlParser.cpp b/src/plugins/xml/XmlParser.cpp
index 7b4b1b3..0c88c5d 100644
--- a/src/plugins/xml/XmlParser.cpp
+++ b/src/plugins/xml/XmlParser.cpp
@@ -883,7 +883,7 @@ static const ParserState DomainStruct =
.createdNodeType(&RttiTypes::StructuredClass)
.elementHandler(DomainStructHandler::create)
.arguments({Argument::String("name"),
- Argument::Cardinality("cardinality", AnyCardinality),
+ Argument::Cardinality("cardinality", Cardinality::any()),
Argument::Bool("isRoot", false),
Argument::Bool("transparent", false),
Argument::String("isa", "")});