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