Package com.networknt.schema
Class RefValidator
- java.lang.Object
-
- com.networknt.schema.ValidationMessageHandler
-
- com.networknt.schema.BaseJsonValidator
-
- com.networknt.schema.RefValidator
-
- All Implemented Interfaces:
JsonValidator
,JsonSchemaWalker
public class RefValidator extends BaseJsonValidator
JsonValidator
that resolves $ref.
-
-
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 static org.slf4j.Logger
logger
private static java.lang.String
REF_CURRENT
protected JsonSchemaRef
schema
-
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 RefValidator(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 static void
copySchemaResources(ValidationContext validationContext, JsonSchema schemaResource)
private static JsonSchema
getJsonSchema(JsonSchema parent, ValidationContext validationContext, java.lang.String refValue, java.lang.String refValueOriginal, JsonNodePath evaluationPath)
(package private) static JsonSchemaRef
getRefSchema(JsonSchema parentSchema, ValidationContext validationContext, java.lang.String refValue, JsonNodePath evaluationPath)
JsonSchemaRef
getSchemaRef()
(package private) static <T> java.util.function.Supplier<T>
getSupplier(java.util.function.Supplier<T> supplier, boolean cache)
void
preloadJsonSchema()
In case theJsonValidator
has a relatedJsonSchema
or several ones, calling preloadJsonSchema will actually load the schema document(s) eagerly.private static java.lang.String
resolve(JsonSchema parentSchema, java.lang.String refValue)
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.-
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
-
schema
protected final JsonSchemaRef schema
-
REF_CURRENT
private static final java.lang.String REF_CURRENT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
RefValidator
public RefValidator(SchemaLocation schemaLocation, JsonNodePath evaluationPath, com.fasterxml.jackson.databind.JsonNode schemaNode, JsonSchema parentSchema, ValidationContext validationContext)
-
-
Method Detail
-
getRefSchema
static JsonSchemaRef getRefSchema(JsonSchema parentSchema, ValidationContext validationContext, java.lang.String refValue, JsonNodePath evaluationPath)
-
getSupplier
static <T> java.util.function.Supplier<T> getSupplier(java.util.function.Supplier<T> supplier, boolean cache)
-
copySchemaResources
private static void copySchemaResources(ValidationContext validationContext, JsonSchema schemaResource)
-
resolve
private static java.lang.String resolve(JsonSchema parentSchema, java.lang.String refValue)
-
getJsonSchema
private static JsonSchema getJsonSchema(JsonSchema parent, ValidationContext validationContext, java.lang.String refValue, java.lang.String refValueOriginal, JsonNodePath evaluationPath)
-
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.
-
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.
-
getSchemaRef
public JsonSchemaRef getSchemaRef()
-
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.
-
-