Class HtmlSplitter


  • public class HtmlSplitter
    extends java.lang.Object
    Splits up a xhtml document into pieces that are all valid xhtml documents.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.io.StringWriter currentDoc  
      private java.util.List<javax.xml.stream.events.XMLEvent> currentXmlEvents  
      private java.util.List<javax.xml.stream.events.XMLEvent> elementStack  
      private int footerCloseTagLength  
      private java.util.List<javax.xml.stream.events.XMLEvent> footerElements  
      private java.util.List<javax.xml.stream.events.XMLEvent> headerElements  
      private int maxLength  
      private javax.xml.stream.XMLEventWriter out  
      private java.util.List<java.util.List<javax.xml.stream.events.XMLEvent>> result  
      private javax.xml.stream.XMLEventFactory xmlEventFactory  
      private javax.xml.stream.XMLOutputFactory xmlOutputFactory  
    • Constructor Summary

      Constructors 
      Constructor Description
      HtmlSplitter()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private static int calculateTotalTagStringLength​(java.util.List<javax.xml.stream.events.XMLEvent> xmlEvents)  
      private void closeAllTags​(java.util.List<javax.xml.stream.events.XMLEvent> xmlEvents)  
      private void closeCurrentDocument()  
      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 boolean isBodyEndElement​(javax.xml.stream.events.XMLEvent xmlEvent)  
      private static boolean isBodyStartElement​(javax.xml.stream.events.XMLEvent xmlEvent)  
      private void processXmlEvent​(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 void startNewDocument()  
      private void updateStack​(javax.xml.stream.events.XMLEvent xmlEvent)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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
    • Constructor Detail

      • HtmlSplitter

        public HtmlSplitter()
    • 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)