Răsfoiți Sursa

add helper methods to Object Validation Builder

Kolja Strohm 1 săptămână în urmă
părinte
comite
776eb51ff2
1 a modificat fișierele cu 36 adăugiri și 0 ștergeri
  1. 36 0
      DataValidator.h

+ 36 - 0
DataValidator.h

@@ -569,6 +569,12 @@ namespace Framework
                     });
             }
 
+            NumberValidationBuilder<ObjectValidationBuilder<T>>*
+            withOptionalNumber(Text name)
+            {
+                return withRequiredNumber(name)->whichIsOptional();
+            }
+
             StringValidationBuilder<ObjectValidationBuilder<T>>*
             withRequiredString(Text name)
             {
@@ -588,6 +594,12 @@ namespace Framework
                     });
             }
 
+            StringValidationBuilder<ObjectValidationBuilder<T>>*
+            withOptionalString(Text name)
+            {
+                return withRequiredString(name)->whichIsOptional();
+            }
+
             BoolValidationBuilder<ObjectValidationBuilder<T>>* withRequiredBool(
                 Text name)
             {
@@ -607,6 +619,12 @@ namespace Framework
                     });
             }
 
+            BoolValidationBuilder<ObjectValidationBuilder<T>>* withOptionalBool(
+                Text name)
+            {
+                return withRequiredBool(name)->whichIsOptional();
+            }
+
             ArrayValidationBuilder<ObjectValidationBuilder<T>>*
             withRequiredArray(Text name)
             {
@@ -626,6 +644,12 @@ namespace Framework
                     });
             }
 
+            ArrayValidationBuilder<ObjectValidationBuilder<T>>*
+            withOptionalArray(Text name)
+            {
+                return withRequiredArray(name)->whichIsOptional();
+            }
+
             ObjectValidationBuilder<ObjectValidationBuilder<T>>*
             withRequiredObject(Text name)
             {
@@ -645,6 +669,12 @@ namespace Framework
                     });
             }
 
+            ObjectValidationBuilder<ObjectValidationBuilder<T>>*
+            withOptionalObject(Text name)
+            {
+                return withRequiredObject(name)->whichIsOptional();
+            }
+
             ObjectValidationBuilder<T>* withRequiredAttribute(
                 Text name, DataValidator* validator)
             {
@@ -660,6 +690,12 @@ namespace Framework
                 return this;
             }
 
+            ObjectValidationBuilder<T>* withOptionalAttribute(
+                Text name, DataValidator* validator)
+            {
+                return withRequiredAttribute(name, validator, false, true);
+            }
+
             ObjectValidationBuilder<T>* withRequiredAttribute(Text name,
                 DataValidator* validator,
                 bool canBeNull,