public Object getDocument(String s) throws FunctionCallException { try { return new Builder(new NodeFactory()).build(s); } catch (Exception pe) { throw new FunctionCallException(pe); } }
private static Document convert(XMLStreamReader streamReader) throws XMLStreamException { NodeFactory nodeFactory = new NodeFactory(); Document document = null; Element element = null; switch (event) { case XMLStreamConstants.START_DOCUMENT: document = nodeFactory.startMakingDocument(); parent = document; break; case XMLStreamConstants.END_DOCUMENT: nodeFactory.finishMakingDocument(document); documentFinished = true; break; case XMLStreamConstants.START_ELEMENT: if (document == null) { document = nodeFactory.startMakingDocument(); parent = document; element = nodeFactory.makeRootElement(name, streamReader.getNamespaceURI()); document.setRootElement(element); element = nodeFactory.startMakingElement(name, streamReader.getNamespaceURI()); parent.appendChild(element); break; case XMLStreamConstants.END_ELEMENT: nodeFactory.finishMakingElement(element); parent = parent.getParent(); break;
Document doc = factory.startMakingDocument(); nodes = factory.finishMakingElement(root); factory.finishMakingDocument(doc); if (DEBUG) System.err.println("finished reading document"); return doc;
public Nodes makeAttribute(String qname, String URI, String value, Attribute.Type type) { return mismatch == null ? child.makeAttribute(qname, URI, value, type) : NONE; }
private Element readStartTagF(ArrayByteList src, int type, boolean isRoot) { String qname = readString(src, 4, type); String namespaceURI = readName(src, 6, type); return isRoot ? factory.makeRootElement(qname, namespaceURI) : factory.startMakingElement(qname, namespaceURI); }
public Nodes makeText(String text) { return Normalizer.isWhitespaceOnly(text) ? NONE : super.makeText(text); } };
public Nodes finishMakingElement(Element elem) { // if (DEBUG) System.err.println("finishlevel=" + level + ", name="+ elem.getLocalName()); if (level == 0) { // root element must always be present; // a document without root element is illegal in XOM mismatch = null; // help gc level--; return super.finishMakingElement(elem); } if (elem == mismatch) { // reset state mismatch = null; level--; return NONE; } if (level == localNames.length - 1) { // we've found an element matching the full path expression return transformMatch(elem); } level--; if (level < localNames.length - 1 && !hasChildElements(elem)) { // prune tree if mismatch or empty return NONE; } return super.finishMakingElement(elem); }
public Nodes makeComment(String data) { return mismatch == null ? child.makeComment(data) : NONE; }
public void finishMakingDocument(Document document) { child.finishMakingDocument(document); }
public Document startMakingDocument() { // reset state level = -1; mismatch = null; return child.startMakingDocument(); }
public Element startMakingElement(String qname, String namespaceURI) { level++; // if (DEBUG) System.err.println("startlevel=" + level + ", name="+ qname); // check against path, if needed if (mismatch == null && level < localNames.length) { if (!isMatch(qname, namespaceURI)) { // build this element despite mismatch; // so we can reset state in finishMakingElement() mismatch = super.startMakingElement(qname, namespaceURI); return mismatch; } } if (mismatch == null) { // no mismatch so far, build this element return super.startMakingElement(qname, namespaceURI); } else { // mismatch; no need to build this element level--; return null; } }
private static Document convert(XMLStreamReader streamReader) throws XMLStreamException { NodeFactory nodeFactory = new NodeFactory(); Document document = null; Element element = null; switch (event) { case XMLStreamConstants.START_DOCUMENT: document = nodeFactory.startMakingDocument(); parent = document; break; case XMLStreamConstants.END_DOCUMENT: nodeFactory.finishMakingDocument(document); documentFinished = true; break; case XMLStreamConstants.START_ELEMENT: if (document == null) { document = nodeFactory.startMakingDocument(); parent = document; element = nodeFactory.makeRootElement(name, streamReader.getNamespaceURI()); document.setRootElement(element); element = nodeFactory.startMakingElement(name, streamReader.getNamespaceURI()); parent.appendChild(element); break; case XMLStreamConstants.END_ELEMENT: nodeFactory.finishMakingElement(element); parent = parent.getParent(); break;
Document doc = factory.startMakingDocument(); nodes = factory.finishMakingElement(root); factory.finishMakingDocument(doc); if (DEBUG) System.err.println("finished reading document"); return doc;
public Nodes makeAttribute(String qname, String URI, String value, Attribute.Type type) { return mismatch == null ? child.makeAttribute(qname, URI, value, type) : NONE; }
private Element readStartTagF(ArrayByteList src, int type, boolean isRoot) { String qname = readString(src, 4, type); String namespaceURI = readName(src, 6, type); return isRoot ? factory.makeRootElement(qname, namespaceURI) : factory.startMakingElement(qname, namespaceURI); }
public Nodes makeText(String text) { return Normalizer.isWhitespaceOnly(text) ? NONE : super.makeText(text); } };
public Nodes finishMakingElement(Element elem) { // if (DEBUG) System.err.println("finishlevel=" + level + ", name="+ elem.getLocalName()); if (level == 0) { // root element must always be present; // a document without root element is illegal in XOM mismatch = null; // help gc level--; return super.finishMakingElement(elem); } if (elem == mismatch) { // reset state mismatch = null; level--; return NONE; } if (level == localNames.length - 1) { // we've found an element matching the full path expression return transformMatch(elem); } level--; if (level < localNames.length - 1 && !hasChildElements(elem)) { // prune tree if mismatch or empty return NONE; } return super.finishMakingElement(elem); }
public Nodes makeComment(String data) { return mismatch == null ? child.makeComment(data) : NONE; }
public void finishMakingDocument(Document document) { child.finishMakingDocument(document); }
public Document startMakingDocument() { // reset state level = -1; mismatch = null; return child.startMakingDocument(); }