Package com.networknt.schema
Class ItemsValidator
- java.lang.Object
-
- com.networknt.schema.ValidationMessageHandler
-
- com.networknt.schema.BaseJsonValidator
-
- com.networknt.schema.ItemsValidator
-
- All Implemented Interfaces:
JsonValidator,JsonSchemaWalker
public class ItemsValidator extends BaseJsonValidator
JsonValidatorfor items V4 to V2019-09.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.networknt.schema.BaseJsonValidator
BaseJsonValidator.JsonNodePathJsonPath, BaseJsonValidator.JsonNodePathJsonPointer, BaseJsonValidator.JsonNodePathLegacy
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.BooleanadditionalItemsprivate JsonNodePathadditionalItemsEvaluationPathprivate SchemaLocationadditionalItemsSchemaLocationprivate com.fasterxml.jackson.databind.JsonNodeadditionalItemsSchemaNodeprivate JsonSchemaadditionalSchemaprivate java.lang.BooleanhasUnevaluatedItemsValidatorprivate static org.slf4j.Loggerloggerprivate static java.lang.StringPROPERTY_ADDITIONAL_ITEMSprivate JsonSchemaschemaprivate java.util.List<JsonSchema>tupleSchema-
Fields inherited from class com.networknt.schema.BaseJsonValidator
schemaNode, suppressSubSchemaRetrieval, validationContext
-
Fields inherited from class com.networknt.schema.ValidationMessageHandler
errorMessage, errorMessageKeyword, errorMessageType, evaluationParentSchema, evaluationPath, keyword, messageSource, parentSchema, schemaLocation
-
-
Constructor Summary
Constructors Constructor Description ItemsValidator(SchemaLocation schemaLocation, JsonNodePath evaluationPath, com.fasterxml.jackson.databind.JsonNode schemaNode, JsonSchema parentSchema, ValidationContext validationContext)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private booleancollectAnnotations()private booleandoValidate(ExecutionContext executionContext, SetView<ValidationMessage> errors, int i, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, JsonNodePath instanceLocation)private static com.fasterxml.jackson.databind.JsonNodegetDefaultNode(JsonSchema schema)JsonSchemagetSchema()java.util.List<JsonSchema>getTupleSchema()private booleanhasUnevaluatedItemsValidator()voidpreloadJsonSchema()In case theJsonValidatorhas a relatedJsonSchemaor several ones, calling preloadJsonSchema will actually load the schema document(s) eagerly.java.util.Set<ValidationMessage>validate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, JsonNodePath instanceLocation)Validate the given JsonNode, the given node is the child node of the root node at given data path.java.util.Set<ValidationMessage>walk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, JsonNodePath instanceLocation, boolean shouldValidateSchema)This is default implementation of walk method.private voidwalkSchema(ExecutionContext executionContext, JsonSchema walkSchema, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, JsonNodePath instanceLocation, boolean shouldValidateSchema, java.util.Set<ValidationMessage> validationMessages, java.lang.String keyword)-
Methods inherited from class com.networknt.schema.BaseJsonValidator
atRoot, checkDiscriminatorMatch, collectAnnotations, collectAnnotations, debug, equals, fetchSubSchemaNode, getEvaluationParentSchema, getEvaluationPath, getKeyword, getNodeFieldType, getParentSchema, getSchemaLocation, getSchemaNode, hasAdjacentKeywordInEvaluationPath, message, preloadJsonSchemas, putAnnotation, registerAndMergeDiscriminator, toString, validate
-
Methods inherited from class com.networknt.schema.ValidationMessageHandler
getErrorMessage, getErrorMessageType, getMessageNode
-
-
-
-
Field Detail
-
logger
private static final org.slf4j.Logger logger
-
PROPERTY_ADDITIONAL_ITEMS
private static final java.lang.String PROPERTY_ADDITIONAL_ITEMS
- See Also:
- Constant Field Values
-
schema
private final JsonSchema schema
-
tupleSchema
private final java.util.List<JsonSchema> tupleSchema
-
additionalItems
private final java.lang.Boolean additionalItems
-
additionalSchema
private final JsonSchema additionalSchema
-
hasUnevaluatedItemsValidator
private java.lang.Boolean hasUnevaluatedItemsValidator
-
additionalItemsEvaluationPath
private final JsonNodePath additionalItemsEvaluationPath
-
additionalItemsSchemaLocation
private final SchemaLocation additionalItemsSchemaLocation
-
additionalItemsSchemaNode
private final com.fasterxml.jackson.databind.JsonNode additionalItemsSchemaNode
-
-
Constructor Detail
-
ItemsValidator
public ItemsValidator(SchemaLocation schemaLocation, JsonNodePath evaluationPath, com.fasterxml.jackson.databind.JsonNode schemaNode, JsonSchema parentSchema, ValidationContext validationContext)
-
-
Method Detail
-
validate
public java.util.Set<ValidationMessage> validate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, JsonNodePath instanceLocation)
Description copied from interface:JsonValidatorValidate the given JsonNode, the given node is the child node of the root node at given data path.- Parameters:
executionContext- ExecutionContextnode- JsonNoderootNode- JsonNodeinstanceLocation- JsonNodePath- Returns:
- A list of ValidationMessage if there is any validation error, or an empty list if there is no error.
-
doValidate
private boolean doValidate(ExecutionContext executionContext, SetView<ValidationMessage> errors, int i, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, JsonNodePath instanceLocation)
-
walk
public java.util.Set<ValidationMessage> walk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, JsonNodePath instanceLocation, boolean shouldValidateSchema)
Description copied from interface:JsonValidatorThis is default implementation of walk method. Its job is to call the validate method if shouldValidateSchema is enabled.- Parameters:
executionContext- ExecutionContextnode- JsonNoderootNode- JsonNodeinstanceLocation- JsonNodePathshouldValidateSchema- boolean- Returns:
- a set of validation messages if shouldValidateSchema is true.
-
getDefaultNode
private static com.fasterxml.jackson.databind.JsonNode getDefaultNode(JsonSchema schema)
-
walkSchema
private void walkSchema(ExecutionContext executionContext, JsonSchema walkSchema, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, JsonNodePath instanceLocation, boolean shouldValidateSchema, java.util.Set<ValidationMessage> validationMessages, java.lang.String keyword)
-
getTupleSchema
public java.util.List<JsonSchema> getTupleSchema()
-
getSchema
public JsonSchema getSchema()
-
collectAnnotations
private boolean collectAnnotations()
-
hasUnevaluatedItemsValidator
private boolean hasUnevaluatedItemsValidator()
-
preloadJsonSchema
public void preloadJsonSchema()
Description copied from interface:JsonValidatorIn case theJsonValidatorhas a relatedJsonSchemaor several ones, calling preloadJsonSchema will actually load the schema document(s) eagerly.
-
-