public abstract class AbstractSyntaxChecker extends 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 String |
keyword
The keyword name
|
Modifier | Constructor and Description |
---|---|
protected |
AbstractSyntaxChecker(String keyword,
NodeType first,
NodeType... other)
Main constructor
|
Modifier and Type | Method and Description |
---|---|
void |
checkSyntax(Collection<JsonPointer> pointers,
ProcessingReport report,
SchemaTree tree)
Main syntax checking function
|
protected abstract void |
checkValue(Collection<JsonPointer> pointers,
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
|
EnumSet<NodeType> |
getValidTypes() |
protected <T> ProcessingMessage |
newMsg(SchemaTree tree,
T msg)
Provide a new message for reporting purposes
|
protected final String keyword
public final EnumSet<NodeType> getValidTypes()
getValidTypes
in interface SyntaxChecker
public final void checkSyntax(Collection<JsonPointer> pointers, 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, ProcessingReport,
SchemaTree)
.
checkSyntax
in interface SyntaxChecker
pointers
- the list of JSON Pointers to fill (see description)report
- 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(Collection<JsonPointer> pointers, 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)report
- the processing report to usetree
- the schemaInvalidSchemaException
- keyword is invalidProcessingException
protected final <T> ProcessingMessage newMsg(SchemaTree tree, T msg)
T
- type of this message valuetree
- the schema treemsg
- the message value to fillProcessingMessage
ProcessingMessage.message(Object)
protected final JsonNode getNode(SchemaTree tree)
tree
- the tree to extract the keyword's value fromCopyright © 2013. All Rights Reserved.