// This software is released into the Public Domain. See copying.txt for details. package org.openstreetmap.osmosis.xml.v0_6.impl; import org.xml.sax.Attributes; import org.openstreetmap.osmosis.core.domain.v0_6.Tag; import org.openstreetmap.osmosis.xml.common.BaseElementProcessor; /** * Provides an element processor implementation for a tag. * * @author Brett Henderson */ public class TagElementProcessor extends BaseElementProcessor { private static final String ATTRIBUTE_NAME_KEY = "k"; private static final String ATTRIBUTE_NAME_VALUE = "v"; private TagListener tagListener; private Tag tag; /** * Creates a new instance. * * @param parentProcessor * The parent element processor. * @param tagListener * The tag listener for receiving created tags. */ public TagElementProcessor(BaseElementProcessor parentProcessor, TagListener tagListener) { super(parentProcessor, true); this.tagListener = tagListener; } /** * {@inheritDoc} */ public void begin(Attributes attributes) { String key; String value; key = attributes.getValue(ATTRIBUTE_NAME_KEY); value = attributes.getValue(ATTRIBUTE_NAME_VALUE); tag = new Tag(key, value); } /** * {@inheritDoc} */ public void end() { tagListener.processTag(tag); tag = null; } }