public class IndentCheckSaxHandler
extends org.xml.sax.helpers.DefaultHandler
DefaultHandler implementation that detects formatting violations and reports them to the supplied
XmlFormatViolationHandler.| Modifier and Type | Class and Description |
|---|---|
private static class |
IndentCheckSaxHandler.ElementEntry
An entry that can be stored on a stack
|
private static class |
IndentCheckSaxHandler.Indent
An indent occurrence within a file characterized by
IndentCheckSaxHandler.Indent.lineNumber and IndentCheckSaxHandler.Indent.size. |
| Modifier and Type | Field and Description |
|---|---|
private java.lang.StringBuilder |
charBuffer |
private int |
charLineNumber |
private java.io.File |
file
The file being checked
|
private int |
indentSize
The number of spaces for indentation
|
private IndentCheckSaxHandler.Indent |
lastIndent |
private org.xml.sax.Locator |
locator
The locator set by
SAXParser |
private java.util.Deque<IndentCheckSaxHandler.ElementEntry> |
stack
The element stack
|
private XmlFormatViolationHandler |
violationHandler
The
XmlFormatViolationHandler for reporting found violations |
| Constructor and Description |
|---|
IndentCheckSaxHandler(java.io.File file,
int indentSize,
XmlFormatViolationHandler violationHandler) |
| Modifier and Type | Method and Description |
|---|---|
void |
characters(char[] ch,
int start,
int length)
Stores the passed characters into a character buffer.
|
void |
endElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName)
Checks indentation for an end element.
|
private void |
flushCharacters()
|
void |
ignorableWhitespace(char[] chars,
int start,
int length)
Just delegates to
characters(char[], int, int), since this method is not called in all situations where
it could be naively expected. |
org.xml.sax.InputSource |
resolveEntity(java.lang.String publicId,
java.lang.String systemId)
Always returns an empty
InputSource to avoid loading of any DTDs. |
void |
setDocumentLocator(org.xml.sax.Locator locator) |
void |
startElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes attributes)
Checks indentation for a start element.
|
private final java.lang.StringBuilder charBuffer
private int charLineNumber
private final java.io.File file
private final int indentSize
private IndentCheckSaxHandler.Indent lastIndent
private org.xml.sax.Locator locator
SAXParserprivate java.util.Deque<IndentCheckSaxHandler.ElementEntry> stack
private final XmlFormatViolationHandler violationHandler
XmlFormatViolationHandler for reporting found violationspublic IndentCheckSaxHandler(java.io.File file,
int indentSize,
XmlFormatViolationHandler violationHandler)
public void characters(char[] ch,
int start,
int length)
throws org.xml.sax.SAXException
characters in interface org.xml.sax.ContentHandlercharacters in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionDefaultHandler.characters(char[], int, int)public void endElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName)
throws org.xml.sax.SAXException
endElement in interface org.xml.sax.ContentHandlerendElement in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionDefaultHandler.startElement(java.lang.String, java.lang.String, java.lang.String,
org.xml.sax.Attributes)private void flushCharacters()
public void ignorableWhitespace(char[] chars,
int start,
int length)
throws org.xml.sax.SAXException
characters(char[], int, int), since this method is not called in all situations where
it could be naively expected.ignorableWhitespace in interface org.xml.sax.ContentHandlerignorableWhitespace in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionDefaultHandler.ignorableWhitespace(char[], int, int)public org.xml.sax.InputSource resolveEntity(java.lang.String publicId,
java.lang.String systemId)
throws org.xml.sax.SAXException,
java.io.IOException
InputSource to avoid loading of any DTDs.resolveEntity in interface org.xml.sax.EntityResolverresolveEntity in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionjava.io.IOExceptionDefaultHandler.resolveEntity(java.lang.String, java.lang.String)public void setDocumentLocator(org.xml.sax.Locator locator)
setDocumentLocator in interface org.xml.sax.ContentHandlersetDocumentLocator in class org.xml.sax.helpers.DefaultHandlerDefaultHandler.setDocumentLocator(org.xml.sax.Locator)public void startElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes attributes)
throws org.xml.sax.SAXException
startElement in interface org.xml.sax.ContentHandlerstartElement in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionDefaultHandler.startElement(java.lang.String, java.lang.String, java.lang.String,
org.xml.sax.Attributes)