Class DefaultEventAllocator

  • All Implemented Interfaces:
    javax.xml.stream.util.XMLEventAllocator, javax.xml.stream.XMLStreamConstants

    public class DefaultEventAllocator
    extends ElemCallback
    implements javax.xml.stream.util.XMLEventAllocator, javax.xml.stream.XMLStreamConstants
    Straight-forward implementation of XMLEventAllocator, to be used with Woodstox' event reader.

    One of few complications here is the way start elements are constructed. The pattern used is double-indirection, needed to get a callback from the stream reader, with data we need for constructing even Object... but without stream reader having any understanding of event Objects per se.

    03-Dec-2004, TSa: One additional twist is that it's now possible to create slightly faster event handling, by indicating that the fully accurate Location information is not necessary. If so, allocator will just use one shared Location object passed to all event objects constructed.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean mAccurateLocation  
      protected javax.xml.stream.Location mLastLocation
      Last used location info; only relevant to non-accurate-location allocators.
      (package private) static DefaultEventAllocator sStdInstance  
      • Fields inherited from interface javax.xml.stream.XMLStreamConstants

        ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected DefaultEventAllocator​(boolean accurateLocation)  
    • Field Detail

      • mAccurateLocation

        protected final boolean mAccurateLocation
      • mLastLocation

        protected javax.xml.stream.Location mLastLocation
        Last used location info; only relevant to non-accurate-location allocators.
    • Constructor Detail

      • DefaultEventAllocator

        protected DefaultEventAllocator​(boolean accurateLocation)
        Parameters:
        accurateLocation - If true, allocator will construct instances that have accurate location information; if false, instances will only have some generic shared Location info. Latter option will reduce memory usage/thrashing a bit, and may improve speed.
    • Method Detail

      • allocate

        public javax.xml.stream.events.XMLEvent allocate​(javax.xml.stream.XMLStreamReader r)
                                                  throws javax.xml.stream.XMLStreamException
        Specified by:
        allocate in interface javax.xml.stream.util.XMLEventAllocator
        Throws:
        javax.xml.stream.XMLStreamException
      • allocate

        public void allocate​(javax.xml.stream.XMLStreamReader r,
                             javax.xml.stream.util.XMLEventConsumer consumer)
                      throws javax.xml.stream.XMLStreamException
        Specified by:
        allocate in interface javax.xml.stream.util.XMLEventAllocator
        Throws:
        javax.xml.stream.XMLStreamException
      • newInstance

        public javax.xml.stream.util.XMLEventAllocator newInstance()
        Specified by:
        newInstance in interface javax.xml.stream.util.XMLEventAllocator