Package org.apache.tools.ant.helper

# Class ProjectHelper2.RootHandler

java.lang.Object
org.xml.sax.helpers.DefaultHandler
org.apache.tools.ant.helper.ProjectHelper2.RootHandler

All Implemented Interfaces:
  `ContentHandler`, `DTDHandler`, `EntityResolver`, `ErrorHandler`

Enclosing class:
  `ProjectHelper2`

public static class ProjectHelper2.RootHandler extends DefaultHandler
Handler for ant processing. Uses a stack of AntHandlers to implement each element (the original parser used a recursive behavior, with the implicit execution stack)

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RootHandler(AntXMLContext context, ProjectHelper2.AntHandler rootHandler)`
  Creates a new RootHandler instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `characters(char[] buf, int start, int count)`
  Handle text within an element, calls currentHandler.characters.
  `void`
  `endElement(String uri, String name, String qName)`
  Handles the end of an element.
  `void`
  `endPrefixMapping(String prefix)`
  End a namespace prefix to uri mapping
  `ProjectHelper2.AntHandler`
  `getCurrentAntHandler()`
  Returns the current ant handler object.
  `InputSource`
  `resolveEntity(String publicId, String systemId)`
  Resolves file: URIs relative to the build file.
  `void`
  `setDocumentLocator(Locator locator)`
  Sets the locator in the project helper for future reference.
  `void`
  `startElement(String uri, String tag, String qname, Attributes attrs)`
  Handles the start of a project element.
  `void`
  `startPrefixMapping(String prefix, String uri)`
  Start a namespace prefix to uri mapping

  ### Methods inherited from class org.xml.sax.helpers.DefaultHandler

  `endDocument, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, skippedEntity, startDocument, unparsedEntityDecl, warning`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.xml.sax.ContentHandler

  `declaration`

- ## Constructor Details

  - ### RootHandler

    public RootHandler(AntXMLContext context, ProjectHelper2.AntHandler rootHandler)
    Creates a new RootHandler instance.
    Parameters:
      `context` - The context for the handler.
      `rootHandler` - The handler for the root element.

- ## Method Details

  - ### getCurrentAntHandler

    public ProjectHelper2.AntHandler getCurrentAntHandler()
    Returns the current ant handler object.
    Returns:
      the current ant handler.

  - ### resolveEntity

    public InputSource resolveEntity(String publicId, String systemId)
    Resolves file: URIs relative to the build file.
    Specified by:
      `resolveEntity` in interface `EntityResolver`
    Overrides:
      `resolveEntity` in class `DefaultHandler`
    Parameters:
      `publicId` - The public identifier, or `null` if none is available. Ignored in this implementation.
      `systemId` - The system identifier provided in the XML document. Will not be `null`.
    Returns:
      an inputsource for this identifier

  - ### startElement

    public void startElement(String uri, String tag, String qname, Attributes attrs) throws SAXParseException
    Handles the start of a project element. A project handler is created and initialised with the element name and attributes.
    Specified by:
      `startElement` in interface `ContentHandler`
    Overrides:
      `startElement` in class `DefaultHandler`
    Parameters:
      `uri` - The namespace uri for this element.
      `tag` - The name of the element being started. Will not be `null`.
      `qname` - The qualified name for this element.
      `attrs` - Attributes of the element being started. Will not be `null`.
    Throws:
      `SAXParseException` - if the tag given is not `"project"`

  - ### setDocumentLocator

    public void setDocumentLocator(Locator locator)
    Sets the locator in the project helper for future reference.
    Specified by:
      `setDocumentLocator` in interface `ContentHandler`
    Overrides:
      `setDocumentLocator` in class `DefaultHandler`
    Parameters:
      `locator` - The locator used by the parser. Will not be `null`.

  - ### endElement

    public void endElement(String uri, String name, String qName) throws SAXException
    Handles the end of an element. Any required clean-up is performed by the onEndElement() method and then the original handler is restored to the parser.
    Specified by:
      `endElement` in interface `ContentHandler`
    Overrides:
      `endElement` in class `DefaultHandler`
    Parameters:
      `uri` - The namespace URI for this element.
      `name` - The name of the element which is ending. Will not be `null`.
      `qName` - The qualified name for this element.
    Throws:
      `SAXException` - in case of error (not thrown in this implementation)

  - ### characters

    public void characters(char[] buf, int start, int count) throws SAXParseException
    Handle text within an element, calls currentHandler.characters.
    Specified by:
      `characters` in interface `ContentHandler`
    Overrides:
      `characters` in class `DefaultHandler`
    Parameters:
      `buf` - A character array of the test.
      `start` - The start offset in the array.
      `count` - The number of characters to read.
    Throws:
      `SAXParseException` - if an error occurs

  - ### startPrefixMapping

    public void startPrefixMapping(String prefix, String uri)
    Start a namespace prefix to uri mapping
    Specified by:
      `startPrefixMapping` in interface `ContentHandler`
    Overrides:
      `startPrefixMapping` in class `DefaultHandler`
    Parameters:
      `prefix` - the namespace prefix
      `uri` - the namespace uri

  - ### endPrefixMapping

    public void endPrefixMapping(String prefix)
    End a namespace prefix to uri mapping
    Specified by:
      `endPrefixMapping` in interface `ContentHandler`
    Overrides:
      `endPrefixMapping` in class `DefaultHandler`
    Parameters:
      `prefix` - the prefix that is not mapped anymore