Package nl.siegmann.epublib.utilities
Class HtmlSplitter
- java.lang.Object
-
- nl.siegmann.epublib.utilities.HtmlSplitter
-
public class HtmlSplitter extends java.lang.ObjectSplits up a xhtml document into pieces that are all valid xhtml documents.
-
-
Field Summary
Fields Modifier and Type Field Description private java.io.StringWritercurrentDocprivate java.util.List<javax.xml.stream.events.XMLEvent>currentXmlEventsprivate java.util.List<javax.xml.stream.events.XMLEvent>elementStackprivate intfooterCloseTagLengthprivate java.util.List<javax.xml.stream.events.XMLEvent>footerElementsprivate java.util.List<javax.xml.stream.events.XMLEvent>headerElementsprivate intmaxLengthprivate javax.xml.stream.XMLEventWriteroutprivate java.util.List<java.util.List<javax.xml.stream.events.XMLEvent>>resultprivate javax.xml.stream.XMLEventFactoryxmlEventFactoryprivate javax.xml.stream.XMLOutputFactoryxmlOutputFactory
-
Constructor Summary
Constructors Constructor Description HtmlSplitter()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static intcalculateTotalTagStringLength(java.util.List<javax.xml.stream.events.XMLEvent> xmlEvents)private voidcloseAllTags(java.util.List<javax.xml.stream.events.XMLEvent> xmlEvents)private voidcloseCurrentDocument()private java.util.List<javax.xml.stream.events.XMLEvent>getFooterElements()private java.util.List<javax.xml.stream.events.XMLEvent>getHeaderElements(javax.xml.stream.XMLEventReader reader)private static booleanisBodyEndElement(javax.xml.stream.events.XMLEvent xmlEvent)private static booleanisBodyStartElement(javax.xml.stream.events.XMLEvent xmlEvent)private voidprocessXmlEvent(javax.xml.stream.events.XMLEvent xmlEvent, java.util.List<java.util.List<javax.xml.stream.events.XMLEvent>> docs)java.util.List<java.util.List<javax.xml.stream.events.XMLEvent>>splitHtml(java.io.Reader reader, int maxLength)java.util.List<java.util.List<javax.xml.stream.events.XMLEvent>>splitHtml(javax.xml.stream.XMLEventReader reader, int maxLength)private voidstartNewDocument()private voidupdateStack(javax.xml.stream.events.XMLEvent xmlEvent)
-
-
-
Field Detail
-
xmlEventFactory
private javax.xml.stream.XMLEventFactory xmlEventFactory
-
xmlOutputFactory
private javax.xml.stream.XMLOutputFactory xmlOutputFactory
-
headerElements
private java.util.List<javax.xml.stream.events.XMLEvent> headerElements
-
footerElements
private java.util.List<javax.xml.stream.events.XMLEvent> footerElements
-
footerCloseTagLength
private int footerCloseTagLength
-
elementStack
private java.util.List<javax.xml.stream.events.XMLEvent> elementStack
-
currentDoc
private java.io.StringWriter currentDoc
-
currentXmlEvents
private java.util.List<javax.xml.stream.events.XMLEvent> currentXmlEvents
-
out
private javax.xml.stream.XMLEventWriter out
-
maxLength
private int maxLength
-
result
private java.util.List<java.util.List<javax.xml.stream.events.XMLEvent>> result
-
-
Method Detail
-
splitHtml
public java.util.List<java.util.List<javax.xml.stream.events.XMLEvent>> splitHtml(java.io.Reader reader, int maxLength) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
calculateTotalTagStringLength
private static int calculateTotalTagStringLength(java.util.List<javax.xml.stream.events.XMLEvent> xmlEvents)
-
splitHtml
public java.util.List<java.util.List<javax.xml.stream.events.XMLEvent>> splitHtml(javax.xml.stream.XMLEventReader reader, int maxLength) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
closeCurrentDocument
private void closeCurrentDocument() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
startNewDocument
private void startNewDocument() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
processXmlEvent
private void processXmlEvent(javax.xml.stream.events.XMLEvent xmlEvent, java.util.List<java.util.List<javax.xml.stream.events.XMLEvent>> docs) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
closeAllTags
private void closeAllTags(java.util.List<javax.xml.stream.events.XMLEvent> xmlEvents) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
updateStack
private void updateStack(javax.xml.stream.events.XMLEvent xmlEvent)
-
getHeaderElements
private java.util.List<javax.xml.stream.events.XMLEvent> getHeaderElements(javax.xml.stream.XMLEventReader reader) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
getFooterElements
private java.util.List<javax.xml.stream.events.XMLEvent> getFooterElements() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
isBodyStartElement
private static boolean isBodyStartElement(javax.xml.stream.events.XMLEvent xmlEvent)
-
isBodyEndElement
private static boolean isBodyEndElement(javax.xml.stream.events.XMLEvent xmlEvent)
-
-