Interface SchemaRepository
public interface SchemaRepository
A repository is a holder of dereferenced schemas, it can be used to create validator instances for a specific schema.
This is to be used when multiple schema objects compose the global schema to be used for validation.
- Author:
- Paulo Lopes
-
Method Summary
Modifier and TypeMethodDescriptionstatic SchemaRepositorycreate(JsonSchemaOptions options) Create a repository with some initial configuration.static SchemaRepositorycreate(JsonSchemaOptions options, JsonFormatValidator jsonFormatValidator) Create a repository with some initial configuration.dereference(JsonSchema schema) Dereferences a schema to the repository.dereference(String uri, JsonSchema schema) Dereferences a schema to the repository.Look up a schema using a JSON pointer notationPreloads the repository with the meta schemas for the related @linkDraftversion.preloadMetaSchema(FileSystem fs, Draft draft) Preloads the repository with the meta schemas for the related draft version.resolve(JsonObject schema) Resolve all$refin the givenJsonObject.validator(JsonSchema schema) A new validator instance using this repository options.default Validatorvalidator(JsonSchema schema, JsonSchemaOptions options) A new validator instance overriding this repository options.validator(JsonSchema schema, JsonSchemaOptions options, boolean dereference) A new validator instance overriding this repository options.A new validator instance using this repository options.validator(String ref, JsonSchemaOptions options) A new validator instance overriding this repository options.
-
Method Details
-
create
Create a repository with some initial configuration.- Parameters:
options- the initial configuration- Returns:
- a repository
-
create
Create a repository with some initial configuration.- Parameters:
options- the initial configuration- Returns:
- a repository
-
dereference
Dereferences a schema to the repository.- Parameters:
schema- a new schema to list- Returns:
- a repository
- Throws:
SchemaException- when a schema is already present for the same id
-
dereference
Dereferences a schema to the repository.- Parameters:
uri- the source of the schema used for de-referencing, optionally relative toJsonSchemaOptions.getBaseUri().schema- a new schema to list- Returns:
- a repository
- Throws:
SchemaException- when a schema is already present for the same id
-
preloadMetaSchema
Preloads the repository with the meta schemas for the related @linkDraftversion. The related draft version is determined from theJsonSchemaOptions, in case that no draft is set in the options anIllegalStateExceptionis thrown.- Parameters:
fs- The Vert.x file system to load the related schema meta files from classpath- Returns:
- a repository
-
preloadMetaSchema
Preloads the repository with the meta schemas for the related draft version.- Parameters:
fs- The Vert.x file system to load the related schema meta files from classpathdraft- The draft version of the meta files to load- Returns:
- a repository
-
validator
A new validator instance using this repository options.- Parameters:
schema- the start validation schema- Returns:
- the validator
-
validator
A new validator instance using this repository options. This is the preferred way to create a validator as it avoids reparsing schemas and reuses the cache in the repository.- Parameters:
ref- the start validation reference in JSON pointer format- Returns:
- the validator
-
validator
A new validator instance overriding this repository options. This is the preferred way to create a validator as it avoids reparsing schemas and reuses the cache in the repository.- Parameters:
ref- the start validation reference in JSON pointer formatoptions- the options to be using on the validator instance- Returns:
- the validator
-
validator
A new validator instance overriding this repository options. The given schema will not be referenced to the repository.- Parameters:
schema- the start validation schemaoptions- the options to be using on the validator instance- Returns:
- the validator
-
validator
A new validator instance overriding this repository options.- Parameters:
schema- the start validation schemaoptions- the options to be using on the validator instancedereference- if true the schema will be dereferenced before validation- Returns:
- the validator
-
resolve
Resolve all$refin the givenJsonObject. The resolution algrithm is not aware of other specifications. When resolving OpenAPI documents (which only allow$refat specific locations) you should validate if the document is valid before performing a resolution. It is important to note that any sibling elements of a$refis ignored. This is because$refworks by replacing itself and everything on its level with the definition it is pointing at.- Parameters:
schema- the JSON object to resolve.- Returns:
- a new JSON object with all the
$refreplaced by actual object references. - Throws:
IllegalArgumentException- when the input JSON is not valid.UnsupportedOperationException- reducing the JSON pointer to a value is undefined.
-
find
Look up a schema using a JSON pointer notation- Parameters:
pointer- the JSON pointer- Returns:
- the schema
-