Package org.codehaus.mojo.xml.format
Class IndentCheckSaxHandler
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.codehaus.mojo.xml.format.IndentCheckSaxHandler
-
- All Implemented Interfaces:
org.xml.sax.ContentHandler,org.xml.sax.DTDHandler,org.xml.sax.EntityResolver,org.xml.sax.ErrorHandler
public class IndentCheckSaxHandler extends org.xml.sax.helpers.DefaultHandlerADefaultHandlerimplementation that detects formatting violations and reports them to the suppliedXmlFormatViolationHandler.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classIndentCheckSaxHandler.ElementEntryAn entry that can be stored on a stackprivate static classIndentCheckSaxHandler.IndentAn indent occurrence within a file characterized byIndentCheckSaxHandler.Indent.lineNumberandIndentCheckSaxHandler.Indent.size.
-
Field Summary
Fields Modifier and Type Field Description private java.lang.StringBuildercharBufferprivate intcharLineNumberprivate java.io.FilefileThe file being checkedprivate intindentSizeThe number of spaces for indentationprivate IndentCheckSaxHandler.IndentlastIndentprivate org.xml.sax.LocatorlocatorThe locator set bySAXParserprivate java.util.Deque<IndentCheckSaxHandler.ElementEntry>stackThe element stackprivate XmlFormatViolationHandlerviolationHandlerTheXmlFormatViolationHandlerfor reporting found violations
-
Constructor Summary
Constructors Constructor Description IndentCheckSaxHandler(java.io.File file, int indentSize, XmlFormatViolationHandler violationHandler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcharacters(char[] ch, int start, int length)Stores the passed characters into a character buffer.voidendElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)Checks indentation for an end element.private voidflushCharacters()voidignorableWhitespace(char[] chars, int start, int length)Just delegates tocharacters(char[], int, int), since this method is not called in all situations where it could be naively expected.org.xml.sax.InputSourceresolveEntity(java.lang.String publicId, java.lang.String systemId)Always returns an emptyInputSourceto avoid loading of any DTDs.voidsetDocumentLocator(org.xml.sax.Locator locator)voidstartElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes)Checks indentation for a start element.
-
-
-
Field Detail
-
charBuffer
private final java.lang.StringBuilder charBuffer
-
charLineNumber
private int charLineNumber
-
file
private final java.io.File file
The file being checked
-
indentSize
private final int indentSize
The number of spaces for indentation
-
lastIndent
private IndentCheckSaxHandler.Indent lastIndent
-
locator
private org.xml.sax.Locator locator
The locator set bySAXParser
-
stack
private java.util.Deque<IndentCheckSaxHandler.ElementEntry> stack
The element stack
-
violationHandler
private final XmlFormatViolationHandler violationHandler
TheXmlFormatViolationHandlerfor reporting found violations
-
-
Constructor Detail
-
IndentCheckSaxHandler
public IndentCheckSaxHandler(java.io.File file, int indentSize, XmlFormatViolationHandler violationHandler)
-
-
Method Detail
-
characters
public void characters(char[] ch, int start, int length) throws org.xml.sax.SAXExceptionStores the passed characters into a character buffer.- Specified by:
charactersin interfaceorg.xml.sax.ContentHandler- Overrides:
charactersin classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXException- See Also:
DefaultHandler.characters(char[], int, int)
-
endElement
public void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName) throws org.xml.sax.SAXExceptionChecks indentation for an end element.- Specified by:
endElementin interfaceorg.xml.sax.ContentHandler- Overrides:
endElementin classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXException- See Also:
DefaultHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
-
flushCharacters
private void flushCharacters()
-
ignorableWhitespace
public void ignorableWhitespace(char[] chars, int start, int length) throws org.xml.sax.SAXExceptionJust delegates tocharacters(char[], int, int), since this method is not called in all situations where it could be naively expected.- Specified by:
ignorableWhitespacein interfaceorg.xml.sax.ContentHandler- Overrides:
ignorableWhitespacein classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXException- See Also:
DefaultHandler.ignorableWhitespace(char[], int, int)
-
resolveEntity
public org.xml.sax.InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId) throws org.xml.sax.SAXException, java.io.IOExceptionAlways returns an emptyInputSourceto avoid loading of any DTDs.- Specified by:
resolveEntityin interfaceorg.xml.sax.EntityResolver- Overrides:
resolveEntityin classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXExceptionjava.io.IOException- See Also:
DefaultHandler.resolveEntity(java.lang.String, java.lang.String)
-
setDocumentLocator
public void setDocumentLocator(org.xml.sax.Locator locator)
- Specified by:
setDocumentLocatorin interfaceorg.xml.sax.ContentHandler- Overrides:
setDocumentLocatorin classorg.xml.sax.helpers.DefaultHandler- See Also:
DefaultHandler.setDocumentLocator(org.xml.sax.Locator)
-
startElement
public void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes) throws org.xml.sax.SAXExceptionChecks indentation for a start element.- Specified by:
startElementin interfaceorg.xml.sax.ContentHandler- Overrides:
startElementin classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXException- See Also:
DefaultHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
-
-