summaryrefslogtreecommitdiffstats
path: root/src/qtjsonschema/schemaobject_p.h
diff options
context:
space:
mode:
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;