Package com.networknt.schema
Class BaseJsonValidator
- java.lang.Object
-
- com.networknt.schema.ValidationMessageHandler
-
- com.networknt.schema.BaseJsonValidator
-
- All Implemented Interfaces:
JsonValidator,JsonSchemaWalker
- Direct Known Subclasses:
AdditionalPropertiesValidator,AllOfValidator,AnyOfValidator,ConstValidator,ContainsValidator,DateTimeValidator,DependenciesValidator,DependentRequired,DependentSchemas,EnumValidator,ExclusiveMaximumValidator,ExclusiveMinimumValidator,FalseValidator,FormatValidator,IfValidator,ItemsValidator,ItemsValidator202012,JsonSchema,MaximumValidator,MaxItemsValidator,MaxLengthValidator,MaxPropertiesValidator,MinimumValidator,MinItemsValidator,MinLengthValidator,MinMaxContainsValidator,MinPropertiesValidator,MultipleOfValidator,NotAllowedValidator,NotValidator,OneOfValidator,PatternPropertiesValidator,PatternValidator,PrefixItemsValidator,PropertiesValidator,PropertyNamesValidator,ReadOnlyValidator,RecursiveRefValidator,RefValidator,RequiredValidator,TrueValidator,TypeValidator,UnevaluatedItemsValidator,UnevaluatedPropertiesValidator,UnionTypeValidator,UniqueItemsValidator,WriteOnlyValidator
public abstract class BaseJsonValidator extends ValidationMessageHandler implements JsonValidator
-
-
Field Summary
Fields Modifier and Type Field Description protected ApplyDefaultsStrategyapplyDefaultsStrategyprotected com.fasterxml.jackson.databind.JsonNodeschemaNodeprotected booleansuppressSubSchemaRetrievalprotected ValidationContextvalidationContext-
Fields inherited from class com.networknt.schema.ValidationMessageHandler
customMessage, errorMessageType, failFast, parentSchema, resourceBundle, schemaPath, validatorType
-
-
Constructor Summary
Constructors Constructor Description BaseJsonValidator(String schemaPath, com.fasterxml.jackson.databind.JsonNode schemaNode, JsonSchema parentSchema, ValidatorTypeCode validatorType, ValidationContext validationContext)BaseJsonValidator(String schemaPath, com.fasterxml.jackson.databind.JsonNode schemaNode, JsonSchema parentSchema, ValidatorTypeCode validatorType, ValidationContext validationContext, boolean suppressSubSchemaRetrieval)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected StringatPath(String currentPath, int index)Create the path for a given child indexed item.protected StringatPath(String currentPath, String token)Create the path for a given child token.protected StringatRoot()Get the root path.protected static voidcheckDiscriminatorMatch(ValidationContext.DiscriminatorContext currentDiscriminatorContext, com.fasterxml.jackson.databind.node.ObjectNode discriminator, String discriminatorPropertyValue, JsonSchema jsonSchema)Checks based on the currentValidationContext.DiscriminatorContextwhether the providedJsonSchemaa match against against the current discriminator.protected static voiddebug(org.slf4j.Logger logger, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, String at)protected static booleanequals(double n1, double n2)protected JsonSchemafetchSubSchemaNode(ValidationContext validationContext)protected StringgetNodeFieldType()JsonSchemagetParentSchema()protected PathTypegetPathType()com.fasterxml.jackson.databind.JsonNodegetSchemaNode()StringgetSchemaPath()protected voidpreloadJsonSchemas(Collection<JsonSchema> schemas)protected static voidregisterAndMergeDiscriminator(ValidationContext.DiscriminatorContext currentDiscriminatorContext, com.fasterxml.jackson.databind.node.ObjectNode discriminator, JsonSchema schema, String at)Rolls up all nested and compatible discriminators to the root discriminator of the type.Set<ValidationMessage>validate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node)Validate the given root JsonNode, starting at the root of the data path.-
Methods inherited from class com.networknt.schema.ValidationMessageHandler
buildValidationMessage, constructValidationMessage, getErrorMessageType, getValidatorType, isPartOfOneOfMultipleType, parseErrorCode, updateValidatorType
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.networknt.schema.JsonValidator
preloadJsonSchema, validate, walk
-
-
-
-
Field Detail
-
suppressSubSchemaRetrieval
protected final boolean suppressSubSchemaRetrieval
-
applyDefaultsStrategy
protected final ApplyDefaultsStrategy applyDefaultsStrategy
-
schemaNode
protected com.fasterxml.jackson.databind.JsonNode schemaNode
-
validationContext
protected ValidationContext validationContext
-
-
Constructor Detail
-
BaseJsonValidator
public BaseJsonValidator(String schemaPath, com.fasterxml.jackson.databind.JsonNode schemaNode, JsonSchema parentSchema, ValidatorTypeCode validatorType, ValidationContext validationContext)
-
BaseJsonValidator
public BaseJsonValidator(String schemaPath, com.fasterxml.jackson.databind.JsonNode schemaNode, JsonSchema parentSchema, ValidatorTypeCode validatorType, ValidationContext validationContext, boolean suppressSubSchemaRetrieval)
-
-
Method Detail
-
equals
protected static boolean equals(double n1, double n2)
-
debug
protected static void debug(org.slf4j.Logger logger, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, String at)
-
checkDiscriminatorMatch
protected static void checkDiscriminatorMatch(ValidationContext.DiscriminatorContext currentDiscriminatorContext, com.fasterxml.jackson.databind.node.ObjectNode discriminator, String discriminatorPropertyValue, JsonSchema jsonSchema)
Checks based on the currentValidationContext.DiscriminatorContextwhether the providedJsonSchemaa match against against the current discriminator.- Parameters:
currentDiscriminatorContext- the currently activeValidationContext.DiscriminatorContextdiscriminator- the discriminator to use for the checkdiscriminatorPropertyValue- the value of thediscriminator/propertyNamefieldjsonSchema- theJsonSchemato check
-
registerAndMergeDiscriminator
protected static void registerAndMergeDiscriminator(ValidationContext.DiscriminatorContext currentDiscriminatorContext, com.fasterxml.jackson.databind.node.ObjectNode discriminator, JsonSchema schema, String at)
Rolls up all nested and compatible discriminators to the root discriminator of the type. Detects attempts to redefine thepropertyNameor mappings.- Parameters:
currentDiscriminatorContext- the currently activeValidationContext.DiscriminatorContextdiscriminator- the discriminator to use for the checkschema- the value of thediscriminator/propertyNamefieldat- the logging prefix
-
getSchemaPath
public String getSchemaPath()
-
getSchemaNode
public com.fasterxml.jackson.databind.JsonNode getSchemaNode()
-
getParentSchema
public JsonSchema getParentSchema()
-
fetchSubSchemaNode
protected JsonSchema fetchSubSchemaNode(ValidationContext validationContext)
-
validate
public Set<ValidationMessage> validate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node)
Description copied from interface:JsonValidatorValidate the given root JsonNode, starting at the root of the data path.- Specified by:
validatein interfaceJsonValidator- Parameters:
executionContext- ExecutionContextnode- JsonNode- Returns:
- A list of ValidationMessage if there is any validation error, or an empty list if there is no error.
-
getNodeFieldType
protected String getNodeFieldType()
-
preloadJsonSchemas
protected void preloadJsonSchemas(Collection<JsonSchema> schemas)
-
getPathType
protected PathType getPathType()
-
atRoot
protected String atRoot()
Get the root path.- Returns:
- The path.
-
atPath
protected String atPath(String currentPath, String token)
Create the path for a given child token.- Parameters:
currentPath- The current path.token- The child token.- Returns:
- The complete path.
-
-