public abstract class AbstractSyntaxChecker extends java.lang.Object implements SyntaxChecker
Apart from providing a convenient base to create a syntax checker of your
own, it also provides message templates with the appropriate information and
a customized exception provider (throwing a InvalidSchemaException
instead of the base ProcessingException.
| Modifier and Type | Field and Description |
|---|---|
protected java.lang.String |
keyword
The keyword name
|
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractSyntaxChecker(java.lang.String keyword,
NodeType first,
NodeType... other)
Main constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
checkSyntax(java.util.Collection<JsonPointer> pointers,
MessageBundle bundle,
ProcessingReport report,
SchemaTree tree)
Main syntax checking function
|
protected abstract void |
checkValue(java.util.Collection<JsonPointer> pointers,
MessageBundle bundle,
ProcessingReport report,
SchemaTree tree)
Method which all syntax checkers extending this class must implement
|
protected JsonNode |
getNode(SchemaTree tree)
Convenience method to retrieve the keyword's value
|
java.util.EnumSet<NodeType> |
getValidTypes() |
protected ProcessingMessage |
newMsg(SchemaTree tree,
MessageBundle bundle,
java.lang.String key)
Provide a new message for reporting purposes
|
public final java.util.EnumSet<NodeType> getValidTypes()
getValidTypes in interface SyntaxCheckerpublic final void checkSyntax(java.util.Collection<JsonPointer> pointers, MessageBundle bundle, ProcessingReport report, SchemaTree tree) throws ProcessingException
This method only checks that the keyword's type is of the correct
type, and reports an error if it isn't; if it is, it handles the rest
of syntax checking to checkValue(Collection, MessageBundle,
ProcessingReport, SchemaTree).
checkSyntax in interface SyntaxCheckerpointers - the list of JSON Pointers to fill (see description)bundle - the message bundle to usereport - the processing report to usetree - the schemaInvalidSchemaException - keyword is invalidProcessingException - an error is detected, and the report is
configured to throw an exception on error.protected abstract void checkValue(java.util.Collection<JsonPointer> pointers, MessageBundle bundle, ProcessingReport report, SchemaTree tree) throws ProcessingException
At this point, it is known that the keyword's value has at least the correct type.
pointers - the list of JSON Pointers to fill (see description)bundle - the message bundle to usereport - the processing report to usetree - the schemaInvalidSchemaException - keyword is invalidProcessingExceptionprotected final ProcessingMessage newMsg(SchemaTree tree, MessageBundle bundle, java.lang.String key)
tree - the schema treebundle - the message bundle to usekey - the messageProcessingMessageProcessingMessage.setMessage(String)protected final JsonNode getNode(SchemaTree tree)
tree - the tree to extract the keyword's value from