aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/mapper/Mapper.hpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-01-24 17:52:47 +0800
committercrupest <crupest@outlook.com>2022-01-24 17:52:47 +0800
commit1cc6e51838fcd5fc986dbb3e13bbb85f11a348be (patch)
tree438ed0961b708139f2c3f8429052a737e0b8e334 /include/cru/ui/mapper/Mapper.hpp
parent6d64ac7d354831b687aee1b7450d539411648888 (diff)
downloadcru-1cc6e51838fcd5fc986dbb3e13bbb85f11a348be.tar.gz
cru-1cc6e51838fcd5fc986dbb3e13bbb85f11a348be.tar.bz2
cru-1cc6e51838fcd5fc986dbb3e13bbb85f11a348be.zip
...
Diffstat (limited to 'include/cru/ui/mapper/Mapper.hpp')
-rw-r--r--include/cru/ui/mapper/Mapper.hpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/include/cru/ui/mapper/Mapper.hpp b/include/cru/ui/mapper/Mapper.hpp
index 5febb26e..ceda8e0f 100644
--- a/include/cru/ui/mapper/Mapper.hpp
+++ b/include/cru/ui/mapper/Mapper.hpp
@@ -12,7 +12,7 @@
namespace cru::ui::mapper {
template <typename T>
-class Mapper;
+class BasicMapper;
class CRU_UI_API MapperBase : public Object {
public:
@@ -27,13 +27,19 @@ class CRU_UI_API MapperBase : public Object {
std::type_index GetTypeIndex() const { return type_index_; }
template <typename T>
- Mapper<T>* StaticCast() {
- return static_cast<Mapper<T>*>(this);
+ BasicMapper<T>* StaticCast() {
+ return static_cast<BasicMapper<T>*>(this);
}
template <typename T>
- Mapper<T>* DynamicCast() {
- return dynamic_cast<Mapper<T>*>(this);
+ BasicMapper<T>* DynamicCast() {
+ return dynamic_cast<BasicMapper<T>*>(this);
+ }
+
+ virtual bool SupportMapFromString() { return false; }
+ virtual bool SupportMapFromXml() { return false; }
+ virtual bool XmlElementIsOfThisType(xml::XmlElementNode* node) {
+ return false;
}
private:
@@ -53,7 +59,6 @@ class CRU_UI_API BasicMapper : public MapperBase {
~BasicMapper() override = default;
- virtual bool SupportMapFromString() { return false; }
virtual T MapFromString(String str) {
if (!SupportMapFromString()) {
throw Exception(u"This mapper does not support map from string.");
@@ -62,10 +67,6 @@ class CRU_UI_API BasicMapper : public MapperBase {
return DoMapFromString(str);
}
- virtual bool SupportMapFromXml() { return false; }
- virtual bool XmlElementIsOfThisType(xml::XmlElementNode* node) {
- return false;
- }
T MapFromXml(xml::XmlElementNode* node) {
if (!SupportMapFromXml()) {
throw new Exception(u"This mapper does not support map from xml.");