org.openstreetmap.osmosis.xml.common.ElementProcessor Maven / Gradle / Ivy
// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.xml.common;
import org.xml.sax.Attributes;
/**
* An element processor provides a handler for processing a specific xml element
* within a document. It provides a state pattern approach to processing nested
* xml structures.
*
* @author Brett Henderson
*/
public interface ElementProcessor {
/**
* Initialises the element processor with attributes for a new element to be
* processed.
*
* @param attributes
* The attributes of the new element.
*/
void begin(Attributes attributes);
/**
* Retrieves the appropriate child element processor for the newly
* encountered nested element.
*
* @param uri
* The element uri.
* @param localName
* The element localName.
* @param qName
* The element qName.
* @return The appropriate element processor for the nested element.
*/
ElementProcessor getChild(String uri, String localName, String qName);
/**
* Returns the parent element processor.
*
* @return The parent element processor.
*/
ElementProcessor getParent();
/**
* Finalises processing for the element processor, this is called when the
* end of an element is reached.
*/
void end();
}