java.lang.Object
org.itsallcode.openfasttrace.importer.xmlparser.tree.CallbackContentHandler
All Implemented Interfaces:
TreeContentHandler

public class CallbackContentHandler extends Object implements TreeContentHandler
A convenient TreeContentHandler that allows registering listeners for specific elements.
  • Constructor Details

  • Method Details

    • setDefaultStartElementListener

      public void setDefaultStartElementListener(Consumer<TreeElement> defaultListener)
      Sets the default start element listener that is called when no other listener matches.
      Parameters:
      defaultListener - the default start element listener.
    • addSubTreeHandler

      public CallbackContentHandler addSubTreeHandler(String elementName, Supplier<TreeContentHandler> supplier)
      Adds a TreeContentHandler that will process the elements in the sub tree.
      Parameters:
      elementName - the element name for which to register the listener.
      supplier - the supplier for the content handler.
      Returns:
      this instance for method chaining.
    • addElementListener

      public CallbackContentHandler addElementListener(String elementName, Consumer<TreeElement> listener)
      Adds a start element listener for elements with a given name. The listener will be called when an element with the given name is found.
      Parameters:
      elementName - the element name for which to register the listener.
      listener - the start element listener.
      Returns:
      this instance for method chaining.
    • addElementListener

      public CallbackContentHandler addElementListener(String elementName, Consumer<TreeElement> startListener, Consumer<TreeElement> endListener)
      Adds start and end element listener for elements with a given name. The listener will be called when an element with the given name is found.
      Parameters:
      elementName - the element name for which to register the listeners.
      startListener - the start element listener.
      endListener - the end element listener.
      Returns:
      this instance for method chaining.
    • init

      public void init(TreeParsingController treeParsingController)
      Description copied from interface: TreeContentHandler
      Called before the parsing is started.
      Specified by:
      init in interface TreeContentHandler
      Parameters:
      treeParsingController - the controller.
    • startElement

      public void startElement(TreeElement treeElement)
      Description copied from interface: TreeContentHandler
      Called when a new XML element starts.
      Specified by:
      startElement in interface TreeContentHandler
      Parameters:
      treeElement - the starting element.
    • endElement

      public void endElement(TreeElement closedElement)
      Description copied from interface: TreeContentHandler
      Called when a XML element is closed.
      Specified by:
      endElement in interface TreeContentHandler
      Parameters:
      closedElement - the closed element.
    • stopParsing

      public void stopParsing()
      Stop parsing, e.g. in case of a parsing error.
    • pushDelegate

      public void pushDelegate(TreeContentHandler delegate)
      Pushes the given TreeContentHandler as a delegate. This will restore the original handler (i.e. this) when the current element ends.
      Parameters:
      delegate - the new delegate.
    • addIntDataListener

      public CallbackContentHandler addIntDataListener(String elementName, IntConsumer listener)
      Add a listener for elements with integer content.
      Parameters:
      elementName - the element name.
      listener - the listener.
      Returns:
      this instance for method chaining.
    • addCharacterDataListener

      public CallbackContentHandler addCharacterDataListener(String elementName, Consumer<String> listener)
      Add a listener for elements with string content.
      Parameters:
      elementName - the element name.
      listener - the listener.
      Returns:
      this instance for method chaining.