public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
 {
     if (definition.Contains<JsonTrue>("uniqueItems"))
     {
         rules.Add(new JsonUniqueItemsRule());
     }
 }
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonObject>("dependencies"))
            {
                JsonObject dependencies = definition.Get<JsonObject>("dependencies");
                JsonDependencyRule rule = new JsonDependencyRule();

                foreach (string property in dependencies.GetKeys())
                {
                    if (dependencies.Contains<JsonArray>(property))
                    {
                        JsonArray items = dependencies.Get<JsonArray>(property);
                        List<string> values = new List<string>(items.Count);

                        foreach (JsonText item in items.Items<JsonText>())
                            values.Add(item.Value);

                        rule.Add(property, values.ToArray());
                    }

                    if (dependencies.Contains<JsonObject>(property))
                    {
                        JsonObject container = dependencies.Get<JsonObject>(property);
                        JsonSchemaRule schema = parse(container);

                        rule.Add(property, schema);
                    }
                }

                rules.Add(rule);
            }
        }
Exemple #3
0
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonText>("$ref"))
            {
                string reference = definition.Get<JsonText>("$ref").Value;
                JsonRefRule rule = new JsonRefRule(reference);

                rules.Add(rule);
            }
        }
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonNumber>("multipleOf"))
            {
                JsonNumber multipleOf = definition.Get<JsonNumber>("multipleOf");
                JsonMultipleOfRule rule = new JsonMultipleOfRule(multipleOf.ToDecimal());

                rules.Add(rule);
            }
        }
Exemple #5
0
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonObject>("not"))
            {
                JsonObject not = definition.Get<JsonObject>("not");
                JsonNotRule rule = new JsonNotRule(parse(not));

                rules.Add(rule);
            }
        }
Exemple #6
0
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonText>("format"))
            {
                JsonText format = definition.Get<JsonText>("format");
                JsonFormatRule rule = new JsonFormatRule(format.Value);

                rules.Add(rule);
            }
        }
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonText>("pattern"))
            {
                JsonText pattern = definition.Get<JsonText>("pattern");
                JsonPatternRule rule = new JsonPatternRule(pattern.Value);

                rules.Add(rule);
            }
        }
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonNumber>("minItems"))
            {
                JsonNumber minItems = definition.Get<JsonNumber>("minItems");
                JsonMinItemsRule rule = new JsonMinItemsRule(minItems.ToInt32());

                rules.Add(rule);
            }
        }
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonNumber>("maximum"))
            {
                JsonNumber maximum = definition.Get<JsonNumber>("maximum");
                JsonTrue exclusiveMaximum = definition.Get<JsonTrue>("exclusiveMaximum");
                JsonMaximumRule rule = new JsonMaximumRule(maximum.ToDecimal(), exclusiveMaximum != null);

                rules.Add(rule);
            }
        }
Exemple #10
0
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonArray>("oneOf"))
            {
                JsonArray allOf = definition.Get<JsonArray>("oneOf");
                JsonOneOfRule rule = new JsonOneOfRule();

                foreach (JsonObject item in allOf.Items<JsonObject>())
                    rule.Add(parse(item));

                rules.Add(rule);
            }
        }
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parsee)
        {
            if (definition.Contains<JsonFalse>("additionalItems"))
            {
                if (definition.Contains<JsonArray>("items"))
                {
                    JsonArray items = definition.Get<JsonArray>("items");
                    JsonAdditionalItemsRule rule = new JsonAdditionalItemsRule(items.Count);

                    rules.Add(rule);
                }
            }
        }
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonObject>("properties"))
            {
                JsonObject properties = definition.Get<JsonObject>("properties");
                JsonPropertiesRule rule = new JsonPropertiesRule();

                foreach (string property in properties.GetKeys())
                    rule.AddProperty(property, parse(properties.Get<JsonObject>(property)));

                rules.Add(rule);
            }
        }
Exemple #13
0
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonArray>("enum"))
            {
                JsonArray enums = definition.Get<JsonArray>("enum");
                JsonEnumRule rule = new JsonEnumRule();

                foreach (JsonValue value in enums.Items())
                    rule.Add(value);

                rules.Add(rule);
            }
        }
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonArray>("required"))
            {
                JsonArray required = definition.Get<JsonArray>("required");
                JsonRequiredRule rule = new JsonRequiredRule();

                foreach (JsonText property in required.Items())
                {
                    rule.Add(property.Value);
                }

                rules.Add(rule);
            }
        }
Exemple #15
0
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonObject>("items"))
            {
                JsonObject items = definition.Get<JsonObject>("items");
                JsonItemsRule rule = new JsonItemsRule(parse(items));

                rules.Add(rule);
            }

            if (definition.Contains<JsonArray>("items"))
            {
                JsonArray items = definition.Get<JsonArray>("items");
                JsonItemsRule rule = new JsonItemsRule();

                foreach (JsonObject item in items.Items<JsonObject>())
                    rule.AddTuple(parse(item));

                rules.Add(rule);
            }
        }
Exemple #16
0
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonText>("type"))
            {
                JsonText type = definition.Get<JsonText>("type");
                JsonTypeRule rule = new JsonTypeRule();

                rule.AddType(type.Value);
                rules.Add(rule);
            }

            if (definition.Contains<JsonArray>("type"))
            {
                JsonArray type = definition.Get<JsonArray>("type");
                JsonTypeRule rule = new JsonTypeRule();

                foreach (JsonText item in type.Items<JsonText>())
                    rule.AddType(item.Value);

                rules.Add(rule);
            }
        }
        public override void Append(JsonSchemaRuleComponent rules, JsonObject definition, Func<JsonObject, JsonSchemaRule> parse)
        {
            if (definition.Contains<JsonFalse>("additionalProperties"))
            {
                JsonObject properties = definition.Get<JsonObject>("properties");
                JsonObject patterns = definition.Get<JsonObject>("patternProperties");
                JsonAdditionalPropertiesRule rule = new JsonAdditionalPropertiesRule();

                if (properties != null)
                    foreach (string property in properties.GetKeys())
                        rule.AddProperty(property);

                if (patterns != null)
                    foreach (string pattern in patterns.GetKeys())
                        rule.AddPattern(pattern);

                rules.Add(rule);
            }

            if (definition.Contains<JsonObject>("additionalProperties"))
            {
                JsonObject additionalProperties = definition.Get<JsonObject>("additionalProperties");
                JsonObject properties = definition.Get<JsonObject>("properties");
                JsonObject patterns = definition.Get<JsonObject>("patternProperties");
                JsonAdditionalPropertiesRule rule = new JsonAdditionalPropertiesRule(parse(additionalProperties));

                if (properties != null)
                    foreach (string property in properties.GetKeys())
                        rule.AddProperty(property);

                if (patterns != null)
                    foreach (string pattern in patterns.GetKeys())
                        rule.AddPattern(pattern);

                rules.Add(rule);
            }
        }