All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xpertss.json.schema.library.Library Maven / Gradle / Ivy

The newest version!
package xpertss.json.schema.library;

import com.github.fge.Frozen;
import xpertss.json.schema.SchemaVersion;
import xpertss.json.schema.cfg.ValidationConfigurationBuilder;
import xpertss.json.schema.core.keyword.syntax.checkers.SyntaxChecker;
import xpertss.json.schema.core.util.Dictionary;
import xpertss.json.schema.format.FormatAttribute;
import xpertss.json.schema.keyword.digest.Digester;
import xpertss.json.schema.keyword.validator.KeywordValidatorFactory;

/**
 * A schema keyword library
 *
 * 

A library contains all keywords defined for a schema, but also all format * attributes.

* * @see ValidationConfigurationBuilder#addLibrary(String, Library) * @see ValidationConfigurationBuilder#setDefaultLibrary(String, Library) * @see ValidationConfigurationBuilder#setDefaultVersion(SchemaVersion) */ public final class Library implements Frozen { /** * Dictionary of syntax checkers */ final Dictionary syntaxCheckers; /** * Dictionary of digesters */ final Dictionary digesters; /** * Dictionary of keyword validator factories */ final Dictionary validators; /** * Dictionary of format attributes */ final Dictionary formatAttributes; /** * Create a new, empty library builder * * @return a {@link LibraryBuilder} */ public static LibraryBuilder newBuilder() { return new LibraryBuilder(); } /** * Constructor from a library builder * * @param builder the builder * @see LibraryBuilder#freeze() */ Library(LibraryBuilder builder) { syntaxCheckers = builder.syntaxCheckers.freeze(); digesters = builder.digesters.freeze(); validators = builder.validators.freeze(); formatAttributes = builder.formatAttributes.freeze(); } /** * Internal constructor, do not use! * * @param syntaxCheckers map of syntax checkers * @param digesters map of digesters * @param validators map of keyword validator constructors * @param formatAttributes map of format attributes */ Library(Dictionary syntaxCheckers, Dictionary digesters, Dictionary validators, Dictionary formatAttributes) { this.syntaxCheckers = syntaxCheckers; this.digesters = digesters; this.validators = validators; this.formatAttributes = formatAttributes; } /** * Get the dictionary of syntax checkers * * @return a dictionary */ public Dictionary getSyntaxCheckers() { return syntaxCheckers; } /** * Get the dictionary of digesters * * @return a dictionary */ public Dictionary getDigesters() { return digesters; } /** * Get the dictionary of keyword validator constructors * * @return a dictionary */ public Dictionary getValidators() { return validators; } /** * Get the dictionary of format attributes * * @return a dictionary */ public Dictionary getFormatAttributes() { return formatAttributes; } /** * Create a mutable version of this library * * @return a {@link LibraryBuilder} * @see LibraryBuilder#LibraryBuilder(Library) */ @Override public LibraryBuilder thaw() { return new LibraryBuilder(this); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy