package net.jhorstmann.i18n.xgettext.web; import net.jhorstmann.i18n.tools.xml.DefaultContentHandler; import org.xml.sax.Attributes; import org.xml.sax.SAXException; public abstract class FacetHandler extends DefaultContentHandler { private final WebMessageExtractor extractor; private final ComponentHandler component; private final StringBuilder text; public FacetHandler(WebMessageExtractor extractor, ComponentHandler component, Attributes atts) { this.extractor = extractor; this.component = component; this.text = new StringBuilder(); } public ComponentHandler getComponent() { return component; } public abstract void endElement(String content); @Override public final void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { throw new SAXException("Unexpected element content in facet"); } @Override public final void endElement(String uri, String localName, String qName) throws SAXException { extractor.popHandler(); endElement(text.toString()); } @Override public final void characters(char[] ch, int start, int length) throws SAXException { text.append(ch, start, length); } }