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,
com.github.fge.msgsimple.bundle.MessageBundle bundle,
ProcessingReport report,
SchemaTree tree)
Main syntax checking function
|
protected abstract void |
checkValue(Collection<JsonPointer> pointers,
com.github.fge.msgsimple.bundle.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
|
EnumSet<NodeType> |
getValidTypes() |
protected ProcessingMessage |
newMsg(SchemaTree tree,
com.github.fge.msgsimple.bundle.MessageBundle bundle,
String key)
Provide a new message for reporting purposes
|
protected final String keyword
public final EnumSet<NodeType> getValidTypes()
getValidTypes in interface SyntaxCheckerpublic final void checkSyntax(Collection<JsonPointer> pointers, com.github.fge.msgsimple.bundle.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(Collection<JsonPointer> pointers, com.github.fge.msgsimple.bundle.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, com.github.fge.msgsimple.bundle.MessageBundle bundle, String key)
tree - the schema treebundle - the message bundle to usekey - the messageProcessingMessageProcessingMessage.message(Object)protected final JsonNode getNode(SchemaTree tree)
tree - the tree to extract the keyword's value fromCopyright © 2013. All Rights Reserved.