/** regenerate the stream from buffer */ public void dump(XPathHandler next) { int last = byteBuffer.position(); byteBuffer.position(0); while (byteBuffer.position() < last) try { switch (getByte()) { case 0: String uri = getString(); String name = getString(); String tag = getString(); AttributesImpl atts = new AttributesImpl(); int len = getShort(); for (int i = 0; i < len; i++) atts.addAttribute("", "", getString(), "", getString()); next.startElement(uri, name, tag, atts); break; case 1: next.endElement(getString(), getString(), getString()); break; case 2: char[] text = getChars(); next.characters(text, 0, text.length); } } catch (SAXException e) { throw new Error(e); } ; byteBuffer.clear(); }
public void startElement(String nm, String ln, String qn, Attributes a) throws SAXException { if (level++ == 0) next.startPredicate(predicate_id); next.startElement(nm, ln, qn, a); condition.startElement(nm, ln, qn, a); }