Package com.networknt.schema
Class SchemaValidatorsConfig
- java.lang.Object
-
- com.networknt.schema.SchemaValidatorsConfig
-
public class SchemaValidatorsConfig extends Object
-
-
Field Summary
Fields Modifier and Type Field Description static StringALL_KEYWORD_WALK_LISTENER_KEY
-
Constructor Summary
Constructors Constructor Description SchemaValidatorsConfig()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddItemWalkListener(JsonSchemaWalkListener itemWalkListener)voidaddItemWalkListeners(List<JsonSchemaWalkListener> itemWalkListeners)voidaddKeywordWalkListener(JsonSchemaWalkListener keywordWalkListener)voidaddKeywordWalkListener(String keyword, JsonSchemaWalkListener keywordWalkListener)voidaddKeywordWalkListeners(String keyword, List<JsonSchemaWalkListener> keywordWalkListeners)voidaddKeywordWalkListeners(List<JsonSchemaWalkListener> keywordWalkListeners)voidaddPropertyWalkListener(JsonSchemaWalkListener propertyWalkListener)voidaddPropertyWalkListeners(List<JsonSchemaWalkListener> propertyWalkListeners)voidaddUriTranslator(URITranslator uriTranslator)booleandoLoadCollectors()ApplyDefaultsStrategygetApplyDefaultsStrategy()List<JsonSchemaWalkListener>getArrayItemWalkListeners()CollectorContextgetCollectorContext()Map<String,List<JsonSchemaWalkListener>>getKeywordWalkListenersMap()LocalegetLocale()Get the locale to consider when generating localised messages (default is the JVM default).PathTypegetPathType()Get the approach used to generate paths in messages, logs and errors.List<JsonSchemaWalkListener>getPropertyWalkListeners()ResourceBundlegetResourceBundle()Get the resource bundle to use when generating localised messages.Map<String,String>getUriMappings()Deprecated.UsegetUriTranslator()insteadURITranslator.CompositeURITranslatorgetUriTranslator()booleanisEcma262Validator()booleanisFailFast()booleanisHandleNullableField()booleanisJavaSemantics()booleanisLosslessNarrowing()booleanisOpenAPI3StyleDiscriminators()Indicates whether OpenAPI 3 style discriminators should be supportedbooleanisResetCollectorContext()booleanisStrict(String keyword)Answers whether a keyword's validators may relax their analysis.booleanisTypeLoose()booleanisWriteMode()voidsetApplyDefaultsStrategy(ApplyDefaultsStrategy applyDefaultsStrategy)voidsetCollectorContext(CollectorContext collectorContext)voidsetEcma262Validator(boolean ecma262Validator)voidsetFailFast(boolean failFast)When enabled,JsonValidator.validate(JsonNode, JsonNode, String)orJsonValidator.validate(JsonNode)doesn't return anySet<ValidationMessage>, instead aJsonSchemaExceptionis thrown as soon as a validation errors is discovered.voidsetHandleNullableField(boolean handleNullableField)voidsetJavaSemantics(boolean javaSemantics)voidsetLoadCollectors(boolean loadCollectors)voidsetLocale(Locale locale)Get the locale to consider when generating localised messages.voidsetLosslessNarrowing(boolean losslessNarrowing)voidsetOpenAPI3StyleDiscriminators(boolean openAPI3StyleDiscriminators)When enabled, the validation ofanyOfandallOfin polymorphism will respect OpenAPI 3 style discriminators as described in the OpenAPI 3.0.3 spec.voidsetPathType(PathType pathType)Set the approach used to generate paths in messages, logs and errors (default is PathType.LEGACY).voidsetResetCollectorContext(boolean resetCollectorContext)voidsetResourceBundle(ResourceBundle resourceBundle)Set the resource bundle to use when generating localised messages.voidsetStrict(String keyword, boolean strict)Alters the strictness of validations for a specific keyword.voidsetTypeLoose(boolean typeLoose)voidsetUriMappings(Map<String,String> uriMappings)Deprecated.UseaddUriTranslator()insteadvoidsetWriteMode(boolean writeMode)When set to true considers that schema is used to write data then ReadOnlyValidator is activated.
-
-
-
Field Detail
-
ALL_KEYWORD_WALK_LISTENER_KEY
public static final String ALL_KEYWORD_WALK_LISTENER_KEY
- See Also:
- Constant Field Values
-
-
Method Detail
-
isTypeLoose
public boolean isTypeLoose()
-
setTypeLoose
public void setTypeLoose(boolean typeLoose)
-
setFailFast
public void setFailFast(boolean failFast)
When enabled,JsonValidator.validate(JsonNode, JsonNode, String)orJsonValidator.validate(JsonNode)doesn't return anySet<ValidationMessage>, instead aJsonSchemaExceptionis thrown as soon as a validation errors is discovered.- Parameters:
failFast- boolean
-
isFailFast
public boolean isFailFast()
-
setApplyDefaultsStrategy
public void setApplyDefaultsStrategy(ApplyDefaultsStrategy applyDefaultsStrategy)
-
getApplyDefaultsStrategy
public ApplyDefaultsStrategy getApplyDefaultsStrategy()
-
getUriTranslator
public URITranslator.CompositeURITranslator getUriTranslator()
-
addUriTranslator
public void addUriTranslator(URITranslator uriTranslator)
-
getUriMappings
@Deprecated public Map<String,String> getUriMappings()
Deprecated.UsegetUriTranslator()instead- Returns:
- Map of public, normally internet accessible schema URLs
-
setUriMappings
@Deprecated public void setUriMappings(Map<String,String> uriMappings)
Deprecated.UseaddUriTranslator()instead- Parameters:
uriMappings- Map of public, normally internet accessible schema URLs
-
isHandleNullableField
public boolean isHandleNullableField()
-
setHandleNullableField
public void setHandleNullableField(boolean handleNullableField)
-
isEcma262Validator
public boolean isEcma262Validator()
-
setEcma262Validator
public void setEcma262Validator(boolean ecma262Validator)
-
isJavaSemantics
public boolean isJavaSemantics()
-
setJavaSemantics
public void setJavaSemantics(boolean javaSemantics)
-
addKeywordWalkListener
public void addKeywordWalkListener(JsonSchemaWalkListener keywordWalkListener)
-
addKeywordWalkListener
public void addKeywordWalkListener(String keyword, JsonSchemaWalkListener keywordWalkListener)
-
addKeywordWalkListeners
public void addKeywordWalkListeners(List<JsonSchemaWalkListener> keywordWalkListeners)
-
addKeywordWalkListeners
public void addKeywordWalkListeners(String keyword, List<JsonSchemaWalkListener> keywordWalkListeners)
-
addPropertyWalkListeners
public void addPropertyWalkListeners(List<JsonSchemaWalkListener> propertyWalkListeners)
-
addPropertyWalkListener
public void addPropertyWalkListener(JsonSchemaWalkListener propertyWalkListener)
-
addItemWalkListener
public void addItemWalkListener(JsonSchemaWalkListener itemWalkListener)
-
addItemWalkListeners
public void addItemWalkListeners(List<JsonSchemaWalkListener> itemWalkListeners)
-
getPropertyWalkListeners
public List<JsonSchemaWalkListener> getPropertyWalkListeners()
-
getKeywordWalkListenersMap
public Map<String,List<JsonSchemaWalkListener>> getKeywordWalkListenersMap()
-
getArrayItemWalkListeners
public List<JsonSchemaWalkListener> getArrayItemWalkListeners()
-
getCollectorContext
public CollectorContext getCollectorContext()
-
setCollectorContext
public void setCollectorContext(CollectorContext collectorContext)
-
isLosslessNarrowing
public boolean isLosslessNarrowing()
-
setLosslessNarrowing
public void setLosslessNarrowing(boolean losslessNarrowing)
-
isOpenAPI3StyleDiscriminators
public boolean isOpenAPI3StyleDiscriminators()
Indicates whether OpenAPI 3 style discriminators should be supported- Returns:
- true in case discriminators are enabled
- Since:
- 1.0.51
-
setOpenAPI3StyleDiscriminators
public void setOpenAPI3StyleDiscriminators(boolean openAPI3StyleDiscriminators)
When enabled, the validation ofanyOfandallOfin polymorphism will respect OpenAPI 3 style discriminators as described in the OpenAPI 3.0.3 spec. The presence of a discriminator configuration on the schema will lead to the following changes in the behavior:- for
oneOfthe spec is unfortunately very vague. WhetheroneOfsemantics should be affected by discriminators or not is not even 100% clear within the members of the OAS steering committee. ThereforeoneOfat the moment ignores discriminators - for
anyOfthe validation will choose one of the candidate schemas for validation based on the discriminator property value and will pass validation when this specific schema passes. This is in particular useful when the payload could match multiple candidates in theanyOflist and could lead to ambiguity. Example: type B has all mandatory properties of A and adds more mandatory ones. Whether the payload is an A or B is determined via the discriminator property name. A payload indicating it is an instance of B then requires passing the validation of B and passing the validation of A would not be sufficient anymore. - for
allOfuse cases with discriminators defined on the copied-in parent type, it is possible to automatically validate against a subtype. Example: some schema specifies that there is a field of type A. A carries a discriminator field and B inherits from A. Then B is automatically a candidate for validation as well and will be chosen in case the discriminator property matches
- Parameters:
openAPI3StyleDiscriminators- whether or not discriminators should be used. Defaults tofalse- Since:
- 1.0.51
- for
-
setLoadCollectors
public void setLoadCollectors(boolean loadCollectors)
-
doLoadCollectors
public boolean doLoadCollectors()
-
isResetCollectorContext
public boolean isResetCollectorContext()
-
setResetCollectorContext
public void setResetCollectorContext(boolean resetCollectorContext)
-
isWriteMode
public boolean isWriteMode()
-
setWriteMode
public void setWriteMode(boolean writeMode)
When set to true considers that schema is used to write data then ReadOnlyValidator is activated. Default true.- Parameters:
writeMode- true if schema is used to write data
-
setPathType
public void setPathType(PathType pathType)
Set the approach used to generate paths in messages, logs and errors (default is PathType.LEGACY).- Parameters:
pathType- The path generation approach.
-
getPathType
public PathType getPathType()
Get the approach used to generate paths in messages, logs and errors.- Returns:
- The path generation approach.
-
isStrict
public boolean isStrict(String keyword)
Answers whether a keyword's validators may relax their analysis. The default is to perform strict checking. One must explicitly allow a validator to be more permissive.Each validator has its own understanding of what is permissive and strict. Consult the keyword's documentation for details.
- Parameters:
keyword- the keyword to adjust (not null)- Returns:
- Whether to perform a strict validation.
-
setStrict
public void setStrict(String keyword, boolean strict)
Alters the strictness of validations for a specific keyword. When set to true, instructs the keyword's validators to perform strict validation. Otherwise, a validator may perform a more permissive check.- Parameters:
keyword- The keyword to adjust (not null)strict- Whether to perform strict validations
-
getLocale
public Locale getLocale()
Get the locale to consider when generating localised messages (default is the JVM default).- Returns:
- The locale.
-
setLocale
public void setLocale(Locale locale)
Get the locale to consider when generating localised messages.- Parameters:
locale- The locale.
-
getResourceBundle
public ResourceBundle getResourceBundle()
Get the resource bundle to use when generating localised messages.- Returns:
- The resource bundle.
-
setResourceBundle
public void setResourceBundle(ResourceBundle resourceBundle)
Set the resource bundle to use when generating localised messages.- Parameters:
resourceBundle- The resource bundle.
-
-