Class Schema
This is the core of json constraint implementation. It parses json constraint file and generates KeywordValidators. The class is thread safe, once it is constructed, it can be used to validate multiple json data concurrently.
Schema instances are thread-safe provided its configuration is not modified.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Schemaprotected final SchemaContextprotected final SchemaLocationprotected final com.fasterxml.jackson.databind.JsonNodeprotected final boolean -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedSchema(List<KeywordValidator> validators, boolean validatorsLoaded, boolean recursiveAnchor, TypeValidator typeValidator, String id, boolean suppressSubSchemaRetrieval, com.fasterxml.jackson.databind.JsonNode schemaNode, SchemaContext schemaContext, Schema parentSchema, SchemaLocation schemaLocation, Map<String, String> errorMessage) Constructor to create a copy using fields. -
Method Summary
Modifier and TypeMethodDescriptionprotected NodePathatRoot()Get the root path.Creates an execution context.protected SchemafetchSubSchemaNode(SchemaContext schemaContext) Finds the root of the schema resource.getId()protected com.fasterxml.jackson.databind.JsonNodeprotected com.fasterxml.jackson.databind.JsonNodegetRefSchema(NodePath fragment) com.fasterxml.jackson.databind.JsonNodegetRefSchemaNode(String ref) Find the schema node for $ref attribute.The schema location is the canonical URI of the schema object plus a JSON Pointer fragment indicating the subschema that produced a result.com.fasterxml.jackson.databind.JsonNodegetSubSchema(NodePath fragment) Gets the sub schema given the json pointer fragment.booleanhasKeyword(String keyword) voidInitializes the validators'Schemainstances.booleanbooleanDetermines if this schema resource is a schema resource root.booleantoString()END OF WALK METHODSvalidate(com.fasterxml.jackson.databind.JsonNode rootNode) Validate the given root JsonNode, starting at the root of the data path.validate(com.fasterxml.jackson.databind.JsonNode rootNode, ExecutionContextCustomizer executionCustomizer) Validate the given root JsonNode, starting at the root of the data path.<T> Tvalidate(com.fasterxml.jackson.databind.JsonNode rootNode, OutputFormat<T> format) Validates the given root JsonNode, starting at the root of the data path.<T> Tvalidate(com.fasterxml.jackson.databind.JsonNode rootNode, OutputFormat<T> format, ExecutionContextCustomizer executionCustomizer) Validates the given root JsonNode, starting at the root of the data path.<T> Tvalidate(com.fasterxml.jackson.databind.JsonNode rootNode, OutputFormat<T> format, Consumer<ExecutionContext> executionCustomizer) Validates the given root JsonNode, starting at the root of the data path.validate(com.fasterxml.jackson.databind.JsonNode rootNode, Consumer<ExecutionContext> executionCustomizer) Validate the given root JsonNode, starting at the root of the data path.validate(AbsoluteIri input, InputFormat inputFormat) Validate the given input string using the input format, starting at the root of the data path.validate(AbsoluteIri input, InputFormat inputFormat, ExecutionContextCustomizer executionCustomizer) Validate the given input string using the input format, starting at the root of the data path.<T> Tvalidate(AbsoluteIri input, InputFormat inputFormat, OutputFormat<T> format) Validates the given input string using the input format, starting at the root of the data path.<T> Tvalidate(AbsoluteIri input, InputFormat inputFormat, OutputFormat<T> format, ExecutionContextCustomizer executionCustomizer) Validates the given input string using the input format, starting at the root of the data path.<T> Tvalidate(AbsoluteIri input, InputFormat inputFormat, OutputFormat<T> format, Consumer<ExecutionContext> executionCustomizer) Validates the given input string using the input format, starting at the root of the data path.validate(AbsoluteIri input, InputFormat inputFormat, Consumer<ExecutionContext> executionCustomizer) Validate the given input string using the input format, starting at the root of the data path.voidvalidate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node) voidvalidate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode jsonNode, com.fasterxml.jackson.databind.JsonNode rootNode, NodePath instanceLocation) START OF VALIDATE METHODS<T> Tvalidate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, OutputFormat<T> format) Validates to a format.<T> Tvalidate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, OutputFormat<T> format, ExecutionContextCustomizer executionCustomizer) Validates to a format.<T> Tvalidate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, OutputFormat<T> format, Consumer<ExecutionContext> executionCustomizer) Validates the given input string using the input format, starting at the root of the data path.validate(ExecutionContext executionContext, String input, InputFormat inputFormat) Validate the given input string using the input format, starting at the root of the data path.validate(ExecutionContext executionContext, String input, InputFormat inputFormat, ExecutionContextCustomizer executionCustomizer) Validate the given input string using the input format, starting at the root of the data path.<T> Tvalidate(ExecutionContext executionContext, String input, InputFormat inputFormat, OutputFormat<T> format) Validates the given input string using the input format, starting at the root of the data path.<T> Tvalidate(ExecutionContext executionContext, String input, InputFormat inputFormat, OutputFormat<T> format, ExecutionContextCustomizer executionCustomizer) Validates the given input string using the input format, starting at the root of the data path.<T> Tvalidate(ExecutionContext executionContext, String input, InputFormat inputFormat, OutputFormat<T> format, Consumer<ExecutionContext> executionCustomizer) Validates the given input string using the input format, starting at the root of the data path.validate(ExecutionContext executionContext, String input, InputFormat inputFormat, Consumer<ExecutionContext> executionCustomizer) Validate the given input string using the input format, starting at the root of the data path.validate(String input, InputFormat inputFormat) Validate the given input string using the input format, starting at the root of the data path.validate(String input, InputFormat inputFormat, ExecutionContextCustomizer executionCustomizer) Validate the given input string using the input format, starting at the root of the data path.<T> Tvalidate(String input, InputFormat inputFormat, OutputFormat<T> format) Validates the given input string using the input format, starting at the root of the data path.<T> Tvalidate(String input, InputFormat inputFormat, OutputFormat<T> format, ExecutionContextCustomizer executionCustomizer) Validates the given input string using the input format, starting at the root of the data path.<T> Tvalidate(String input, InputFormat inputFormat, OutputFormat<T> format, Consumer<ExecutionContext> executionCustomizer) Validates the given input string using the input format, starting at the root of the data path.validate(String input, InputFormat inputFormat, Consumer<ExecutionContext> executionCustomizer) Validate the given input string using the input format, starting at the root of the data path.walk(com.fasterxml.jackson.databind.JsonNode node, boolean validate) Walk the JSON node.walk(com.fasterxml.jackson.databind.JsonNode node, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the JSON node.walk(com.fasterxml.jackson.databind.JsonNode node, boolean validate, Consumer<ExecutionContext> executionCustomizer) Walk the JSON node.<T> Twalk(com.fasterxml.jackson.databind.JsonNode node, OutputFormat<T> outputFormat, boolean validate) Walk the JSON node.walk(AbsoluteIri input, InputFormat inputFormat, boolean validate) Walk the input.walk(AbsoluteIri input, InputFormat inputFormat, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the input.walk(AbsoluteIri input, InputFormat inputFormat, boolean validate, Consumer<ExecutionContext> executionCustomizer) Walk the input.walk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, boolean validate) Walk the JSON node.walk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the JSON node.walk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, boolean validate, Consumer<ExecutionContext> executionCustomizer) Walk the JSON node.voidwalk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, NodePath instanceLocation, boolean shouldValidateSchema) This is default implementation of walk method.<T> Twalk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, OutputFormat<T> outputFormat, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the JSON node.<T> Twalk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, OutputFormat<T> outputFormat, boolean validate, Consumer<ExecutionContext> executionCustomizer) Walk the JSON node.walk(ExecutionContext executionContext, String input, InputFormat inputFormat, boolean validate) Walk the input.walk(ExecutionContext executionContext, String input, InputFormat inputFormat, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the input.<T> Twalk(ExecutionContext executionContext, String input, InputFormat inputFormat, OutputFormat<T> outputFormat, boolean validate) Walk the input.<T> Twalk(ExecutionContext executionContext, String input, InputFormat inputFormat, OutputFormat<T> outputFormat, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the input.walk(String input, InputFormat inputFormat, boolean validate) Walk the input.walk(String input, InputFormat inputFormat, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the input.walk(String input, InputFormat inputFormat, boolean validate, Consumer<ExecutionContext> executionCustomizer) Walk the input.walkAtNode(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, NodePath instanceLocation, boolean validate) Walk at the node.
-
Field Details
-
schemaNode
protected final com.fasterxml.jackson.databind.JsonNode schemaNode -
parentSchema
-
schemaLocation
-
schemaContext
-
suppressSubSchemaRetrieval
protected final boolean suppressSubSchemaRetrieval
-
-
Constructor Details
-
Schema
protected Schema(List<KeywordValidator> validators, boolean validatorsLoaded, boolean recursiveAnchor, TypeValidator typeValidator, String id, boolean suppressSubSchemaRetrieval, com.fasterxml.jackson.databind.JsonNode schemaNode, SchemaContext schemaContext, Schema parentSchema, SchemaLocation schemaLocation, Map<String, String> errorMessage) Constructor to create a copy using fields.- Parameters:
validators- the validatorsvalidatorsLoaded- whether the validators are preloadedrecursiveAnchor- whether this is has a recursive anchorid- the idsuppressSubSchemaRetrieval- to suppress sub schema retrievalschemaNode- the schema nodeschemaContext- the schema contextparentSchema- the parent schemaschemaLocation- the schema locationerrorMessage- the error message
-
-
Method Details
-
getSchemaNode
public com.fasterxml.jackson.databind.JsonNode getSchemaNode() -
getSchemaLocation
Description copied from interface:ValidatorThe schema location is the canonical URI of the schema object plus a JSON Pointer fragment indicating the subschema that produced a result. In contrast with the evaluation path, the schema location MUST NOT include by-reference applicators such as $ref or $dynamicRef.- Specified by:
getSchemaLocationin interfaceValidator- Returns:
- the schema location
-
getParentSchema
-
isSuppressSubSchemaRetrieval
public boolean isSuppressSubSchemaRetrieval() -
fetchSubSchemaNode
-
validate
public void validate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node) -
atRoot
Get the root path.- Returns:
- The path.
-
getSchemaContext
-
hasKeyword
-
getRefSchemaNode
Find the schema node for $ref attribute.- Parameters:
ref- String- Returns:
- JsonNode
-
getRefSchema
-
getSubSchema
Gets the sub schema given the json pointer fragment.- Parameters:
fragment- the json pointer fragment- Returns:
- the schema
-
getNode
-
getNode
protected com.fasterxml.jackson.databind.JsonNode getNode(com.fasterxml.jackson.databind.JsonNode node, Object propertyOrIndex) -
findLexicalRoot
-
findSchemaResourceRoot
Finds the root of the schema resource.This is either the schema document root or the subschema resource root.
- Returns:
- the root of the schema
-
isSchemaResourceRoot
public boolean isSchemaResourceRoot()Determines if this schema resource is a schema resource root.This is either the schema document root or the subschema resource root.
- Returns:
- if this schema is a schema resource root
-
getId
-
findAncestor
-
validate
public void validate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode jsonNode, com.fasterxml.jackson.databind.JsonNode rootNode, NodePath instanceLocation) START OF VALIDATE METHODS -
validate
Validate the given root JsonNode, starting at the root of the data path.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Parameters:
rootNode- the root node- Returns:
- A list of Error if there is any validation error, or an empty list if there is no error.
-
validate
public List<Error> validate(com.fasterxml.jackson.databind.JsonNode rootNode, ExecutionContextCustomizer executionCustomizer) Validate the given root JsonNode, starting at the root of the data path.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Parameters:
rootNode- the root nodeexecutionCustomizer- the execution customizer- Returns:
- the assertions
-
validate
public List<Error> validate(com.fasterxml.jackson.databind.JsonNode rootNode, Consumer<ExecutionContext> executionCustomizer) Validate the given root JsonNode, starting at the root of the data path.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Parameters:
rootNode- the root nodeexecutionCustomizer- the execution customizer- Returns:
- the assertions
-
validate
Validates the given root JsonNode, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
rootNode- the root nodeformat- the formatter- Returns:
- the result
-
validate
public <T> T validate(com.fasterxml.jackson.databind.JsonNode rootNode, OutputFormat<T> format, ExecutionContextCustomizer executionCustomizer) Validates the given root JsonNode, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
rootNode- the root nodeformat- the formatterexecutionCustomizer- the execution customizer- Returns:
- the result
-
validate
public <T> T validate(com.fasterxml.jackson.databind.JsonNode rootNode, OutputFormat<T> format, Consumer<ExecutionContext> executionCustomizer) Validates the given root JsonNode, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
rootNode- the root nodeformat- the formatterexecutionCustomizer- the execution customizer- Returns:
- the result
-
validate
Validate the given input string using the input format, starting at the root of the data path.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Parameters:
input- the inputinputFormat- the inputFormat- Returns:
- A list of Error if there is any validation error, or an empty list if there is no error.
-
validate
public List<Error> validate(String input, InputFormat inputFormat, ExecutionContextCustomizer executionCustomizer) Validate the given input string using the input format, starting at the root of the data path.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Parameters:
input- the inputinputFormat- the inputFormatexecutionCustomizer- the execution customizer- Returns:
- the assertions
-
validate
public List<Error> validate(String input, InputFormat inputFormat, Consumer<ExecutionContext> executionCustomizer) Validate the given input string using the input format, starting at the root of the data path.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Parameters:
input- the inputinputFormat- the inputFormatexecutionCustomizer- the execution customizer- Returns:
- the assertions
-
validate
Validates the given input string using the input format, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
input- the inputinputFormat- the inputFormatformat- the formatter- Returns:
- the result
-
validate
public <T> T validate(String input, InputFormat inputFormat, OutputFormat<T> format, ExecutionContextCustomizer executionCustomizer) Validates the given input string using the input format, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
input- the inputinputFormat- the inputFormatformat- the formatterexecutionCustomizer- the execution customizer- Returns:
- the result
-
validate
public <T> T validate(String input, InputFormat inputFormat, OutputFormat<T> format, Consumer<ExecutionContext> executionCustomizer) Validates the given input string using the input format, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
input- the inputinputFormat- the inputFormatformat- the formatterexecutionCustomizer- the execution customizer- Returns:
- the result
-
validate
Validate the given input string using the input format, starting at the root of the data path.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Parameters:
input- the inputinputFormat- the inputFormat- Returns:
- A list of Error if there is any validation error, or an empty list if there is no error.
-
validate
public List<Error> validate(AbsoluteIri input, InputFormat inputFormat, ExecutionContextCustomizer executionCustomizer) Validate the given input string using the input format, starting at the root of the data path.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Parameters:
input- the inputinputFormat- the inputFormatexecutionCustomizer- the execution customizer- Returns:
- the assertions
-
validate
public List<Error> validate(AbsoluteIri input, InputFormat inputFormat, Consumer<ExecutionContext> executionCustomizer) Validate the given input string using the input format, starting at the root of the data path.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Parameters:
input- the inputinputFormat- the inputFormatexecutionCustomizer- the execution customizer- Returns:
- the assertions
-
validate
Validates the given input string using the input format, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
input- the inputinputFormat- the inputFormatformat- the formatter- Returns:
- the result
-
validate
public <T> T validate(AbsoluteIri input, InputFormat inputFormat, OutputFormat<T> format, ExecutionContextCustomizer executionCustomizer) Validates the given input string using the input format, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
input- the inputinputFormat- the inputFormatformat- the formatterexecutionCustomizer- the execution customizer- Returns:
- the result
-
validate
public <T> T validate(AbsoluteIri input, InputFormat inputFormat, OutputFormat<T> format, Consumer<ExecutionContext> executionCustomizer) Validates the given input string using the input format, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
input- the inputinputFormat- the inputFormatformat- the formatterexecutionCustomizer- the execution customizer- Returns:
- the result
-
validate
public List<Error> validate(ExecutionContext executionContext, String input, InputFormat inputFormat) Validate the given input string using the input format, starting at the root of the data path.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Parameters:
executionContext- the execution contextinput- the inputinputFormat- the inputFormat- Returns:
- A list of Error if there is any validation error, or an empty list if there is no error.
-
validate
public List<Error> validate(ExecutionContext executionContext, String input, InputFormat inputFormat, ExecutionContextCustomizer executionCustomizer) Validate the given input string using the input format, starting at the root of the data path.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Parameters:
executionContext- the execution contextinput- the inputinputFormat- the inputFormatexecutionCustomizer- the execution customizer- Returns:
- the assertions
-
validate
public List<Error> validate(ExecutionContext executionContext, String input, InputFormat inputFormat, Consumer<ExecutionContext> executionCustomizer) Validate the given input string using the input format, starting at the root of the data path.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Parameters:
executionContext- the execution contextinput- the inputinputFormat- the inputFormatexecutionCustomizer- the execution customizer- Returns:
- the assertions
-
validate
public <T> T validate(ExecutionContext executionContext, String input, InputFormat inputFormat, OutputFormat<T> format) Validates the given input string using the input format, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
executionContext- the execution contextinput- the inputinputFormat- the inputFormatformat- the formatter- Returns:
- the result
-
validate
public <T> T validate(ExecutionContext executionContext, String input, InputFormat inputFormat, OutputFormat<T> format, ExecutionContextCustomizer executionCustomizer) Validates the given input string using the input format, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
executionContext- the execution contextinput- the inputinputFormat- the inputFormatformat- the formatterexecutionCustomizer- the execution customizer- Returns:
- the result
-
validate
public <T> T validate(ExecutionContext executionContext, String input, InputFormat inputFormat, OutputFormat<T> format, Consumer<ExecutionContext> executionCustomizer) Validates the given input string using the input format, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
executionContext- the execution contextinput- the inputinputFormat- the inputFormatformat- the formatterexecutionCustomizer- the execution customizer- Returns:
- the result
-
validate
public <T> T validate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, OutputFormat<T> format) Validates to a format.- Type Parameters:
T- the result type- Parameters:
executionContext- the execution contextnode- the nodeformat- the format- Returns:
- the result
-
validate
public <T> T validate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, OutputFormat<T> format, Consumer<ExecutionContext> executionCustomizer) Validates the given input string using the input format, starting at the root of the data path. The output will be formatted using the formatter specified.Note that since Draft 2019-09 by default format generates only annotations and not assertions.
Use
ExecutionConfig.BuilderSupport.formatAssertionsEnabled(Boolean)to override the default.- Type Parameters:
T- the result type- Parameters:
executionContext- the execution contextnode- the nodeformat- the formatterexecutionCustomizer- the execution customizer- Returns:
- the result
-
validate
public <T> T validate(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, OutputFormat<T> format, ExecutionContextCustomizer executionCustomizer) Validates to a format.- Type Parameters:
T- the result type- Parameters:
executionContext- the execution contextnode- the nodeformat- the formatexecutionCustomizer- the customizer- Returns:
- the result
-
walk
public Result walk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the JSON node.- Parameters:
executionContext- the execution contextnode- the inputvalidate- true to validate the input against the schemaexecutionCustomizer- the customizer- Returns:
- the validation result
-
walk
public <T> T walk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, OutputFormat<T> outputFormat, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the JSON node.- Type Parameters:
T- the result type- Parameters:
executionContext- the execution contextnode- the inputoutputFormat- the output formatvalidate- true to validate the input against the schemaexecutionCustomizer- the customizer- Returns:
- the validation result
-
walk
public Result walk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, boolean validate, Consumer<ExecutionContext> executionCustomizer) Walk the JSON node.- Parameters:
executionContext- the execution contextnode- the inputvalidate- true to validate the input against the schemaexecutionCustomizer- the customizer- Returns:
- the validation result
-
walk
public <T> T walk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, OutputFormat<T> outputFormat, boolean validate, Consumer<ExecutionContext> executionCustomizer) Walk the JSON node.- Type Parameters:
T- the result type- Parameters:
executionContext- the execution contextnode- the inputoutputFormat- the output formatvalidate- true to validate the input against the schemaexecutionCustomizer- the customizer- Returns:
- the validation result
-
walk
public Result walk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, boolean validate) Walk the JSON node.- Parameters:
executionContext- the execution contextnode- the inputvalidate- true to validate the input against the schema- Returns:
- the validation result
-
walk
public Result walk(ExecutionContext executionContext, String input, InputFormat inputFormat, boolean validate) Walk the input.- Parameters:
executionContext- the execution contextinput- the inputinputFormat- the input formatvalidate- true to validate the input against the schema- Returns:
- the validation result
-
walk
public <T> T walk(ExecutionContext executionContext, String input, InputFormat inputFormat, OutputFormat<T> outputFormat, boolean validate) Walk the input.- Type Parameters:
T- the result type- Parameters:
executionContext- the execution contextinput- the inputinputFormat- the input formatoutputFormat- the output formatvalidate- true to validate the input against the schema- Returns:
- the validation result
-
walk
public Result walk(ExecutionContext executionContext, String input, InputFormat inputFormat, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the input.- Parameters:
executionContext- the execution contextinput- the inputinputFormat- the input formatvalidate- true to validate the input against the schemaexecutionCustomizer- the customizer- Returns:
- the validation result
-
walk
public <T> T walk(ExecutionContext executionContext, String input, InputFormat inputFormat, OutputFormat<T> outputFormat, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the input.- Type Parameters:
T- the result type- Parameters:
executionContext- the execution contextinput- the inputinputFormat- the input formatoutputFormat- the output formatvalidate- true to validate the input against the schemaexecutionCustomizer- the customizer- Returns:
- the validation result
-
walk
Walk the JSON node.- Parameters:
node- the inputvalidate- true to validate the input against the schema- Returns:
- the validation result
-
walk
public Result walk(com.fasterxml.jackson.databind.JsonNode node, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the JSON node.- Parameters:
node- the inputvalidate- true to validate the input against the schemaexecutionCustomizer- the customizer- Returns:
- the validation result
-
walk
public Result walk(com.fasterxml.jackson.databind.JsonNode node, boolean validate, Consumer<ExecutionContext> executionCustomizer) Walk the JSON node.- Parameters:
node- the inputvalidate- true to validate the input against the schemaexecutionCustomizer- the customizer- Returns:
- the validation result
-
walk
public <T> T walk(com.fasterxml.jackson.databind.JsonNode node, OutputFormat<T> outputFormat, boolean validate) Walk the JSON node.- Type Parameters:
T- the result type- Parameters:
node- the inputoutputFormat- the output formatvalidate- true to validate the input against the schema- Returns:
- the validation result
-
walk
Walk the input.- Parameters:
input- the inputinputFormat- the input formatvalidate- true to validate the input against the schema- Returns:
- the validation result
-
walk
public Result walk(String input, InputFormat inputFormat, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the input.- Parameters:
input- the inputinputFormat- the input formatvalidate- true to validate the input against the schemaexecutionCustomizer- the customizer- Returns:
- the validation result
-
walk
public Result walk(String input, InputFormat inputFormat, boolean validate, Consumer<ExecutionContext> executionCustomizer) Walk the input.- Parameters:
input- the inputinputFormat- the input formatvalidate- true to validate the input against the schemaexecutionCustomizer- the customizer- Returns:
- the validation result
-
walk
Walk the input.- Parameters:
input- the inputinputFormat- the input formatvalidate- true to validate the input against the schema- Returns:
- the validation result
-
walk
public Result walk(AbsoluteIri input, InputFormat inputFormat, boolean validate, ExecutionContextCustomizer executionCustomizer) Walk the input.- Parameters:
input- the inputinputFormat- the input formatvalidate- true to validate the input against the schemaexecutionCustomizer- the customizer- Returns:
- the validation result
-
walk
public Result walk(AbsoluteIri input, InputFormat inputFormat, boolean validate, Consumer<ExecutionContext> executionCustomizer) Walk the input.- Parameters:
input- the inputinputFormat- the input formatvalidate- true to validate the input against the schemaexecutionCustomizer- the customizer- Returns:
- the validation result
-
walkAtNode
public Result walkAtNode(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, NodePath instanceLocation, boolean validate) Walk at the node.- Parameters:
executionContext- the execution contentnode- the current noderootNode- the root nodeinstanceLocation- the instance locationvalidate- true to validate the input against the schema- Returns:
- the validation result
-
walk
public void walk(ExecutionContext executionContext, com.fasterxml.jackson.databind.JsonNode node, com.fasterxml.jackson.databind.JsonNode rootNode, NodePath instanceLocation, boolean shouldValidateSchema) Description copied from interface:ValidatorThis is default implementation of walk method. Its job is to call the validate method if shouldValidateSchema is enabled.- Specified by:
walkin interfaceValidator- Specified by:
walkin interfaceWalker- Parameters:
executionContext- the execution contextnode- the instance node being processedrootNode- the instance document that the instance node belongs toinstanceLocation- the location of the instance node being processedshouldValidateSchema- true to validate the schema while walking
-
toString
END OF WALK METHODS -
getValidators
-
initializeValidators
public void initializeValidators()Initializes the validators'Schemainstances. For avoiding issues with concurrency, in 1.0.49 theSchemainstances affiliated with validators were modified to no more preload the schema and lazy loading is used instead.This comes with the issue that this way you cannot rely on validating important schema features, in particular
$refresolution at instantiation fromSchemaRegistry.By calling
initializeValidatorsyou can enforce preloading of theSchemainstances of the validators. -
isRecursiveAnchor
public boolean isRecursiveAnchor() -
createExecutionContext
Creates an execution context.- Returns:
- the execution context
-