summaryrefslogtreecommitdiffstats
path: root/src/qtjsonschema/schemaobject_p.h
diff options
context:
space:
mode:
authorAlexei Rousskikh <ext-alexei.rousskikh@nokia.com>2012-02-16 13:39:08 -0500
committerAndrew Christian <andrew.christian@nokia.com>2012-02-16 21:16:40 +0100
commit7073c61891b6b0bb92aea512692a7686568656f4 (patch)
tree50c3cf13ff95b56da62911a6188536594a8504e8 /src/qtjsonschema/schemaobject_p.h
parenta870d6db7ecd32516ec5029cbde06e4f89805e97 (diff)
initial default schema property implementation
Change-Id: I7a876291cbea19a00bb692cdf9000bcb7a586904 Reviewed-by: Andrew Christian <andrew.christian@nokia.com>
Diffstat (limited to 'src/qtjsonschema/schemaobject_p.h')
-rw-r--r--src/qtjsonschema/schemaobject_p.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/qtjsonschema/schemaobject_p.h b/src/qtjsonschema/schemaobject_p.h
index bedc638..68c5d94 100644
--- a/src/qtjsonschema/schemaobject_p.h
+++ b/src/qtjsonschema/schemaobject_p.h
@@ -109,6 +109,10 @@ class Schema {
public:
inline bool check(const Value &value, Service *callbackToUseForCheck) const;
+ void checkDefault(Value &value, Object &object) const
+ {
+ d_ptr->checkDefault(value, object);
+ }
Schema()
: d_ptr(new SchemaPrivate<T>())
@@ -151,6 +155,7 @@ class SchemaPrivate : public QSharedData
};
Q_DECLARE_FLAGS(Flags, Flag)
Flags m_flags;
+ QSharedPointer<Value> m_default; // keeps a default value
};
class Check {
@@ -177,6 +182,10 @@ class SchemaPrivate : public QSharedData
return result;
}
+ Value* getDefault() const { return m_data && m_data->m_default ? m_data->m_default.data() : 0; }
+
+ virtual void checkDefault(Value& value, Object &object) const {} // do nothing in generic case
+
protected:
SchemaPrivate *m_schema;
QSharedPointer<CheckSharedData> m_data; // is used to exchange information between attributes
@@ -217,6 +226,8 @@ class SchemaPrivate : public QSharedData
class CheckMaxLength;
// 5.19
class CheckEnum;
+ // 5.20
+ class CheckDefault;
// 5.21
class CheckTitle;
// 5.23
@@ -267,6 +278,8 @@ public:
return m_checks.size();
}
+ void checkDefault(Value &value, Object &object) const;
+
private:
QVarLengthArray<Check *, 4> m_checks;
qint32 m_maxRequired;