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
JsonValidator
for 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.Boolean
additionalItems
private JsonNodePath
additionalItemsEvaluationPath
private SchemaLocation
additionalItemsSchemaLocation
private com.fasterxml.jackson.databind.JsonNode
additionalItemsSchemaNode
private JsonSchema
additionalSchema
private java.lang.Boolean
hasUnevaluatedItemsValidator
private static org.slf4j.Logger
logger
private static java.lang.String
PROPERTY_ADDITIONAL_ITEMS
private JsonSchema
schema
private 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 boolean
collectAnnotations()
private boolean
doValidate(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.JsonNode
getDefaultNode(JsonSchema schema)
JsonSchema
getSchema()
java.util.List<JsonSchema>
getTupleSchema()
private boolean
hasUnevaluatedItemsValidator()
void
preloadJsonSchema()
In case theJsonValidator
has a relatedJsonSchema
or 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 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)
-
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:JsonValidator
Validate 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:JsonValidator
This 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:JsonValidator
In case theJsonValidator
has a relatedJsonSchema
or several ones, calling preloadJsonSchema will actually load the schema document(s) eagerly.
-
-