List of usage examples for org.apache.commons.jxpath.ri.model NodeIterator setPosition
boolean setPosition(int position);
From source file:org.eclipse.e4.emf.internal.xpath.CollectionNodeIterator.java
/** * Prepare...//from w w w. ja v a2 s.c o m */ private void prepare() { collection = new ArrayList<>(); NodePointer ptr = (NodePointer) pointer.clone(); int length = ptr.getLength(); for (int i = 0; i < length; i++) { ptr.setIndex(i); NodePointer elementPointer = ptr.getValuePointer(); NodeIterator iter = getElementNodeIterator(elementPointer); for (int j = 1; iter.setPosition(j); j++) { NodePointer childPointer = iter.getNodePointer(); if (reverse) { collection.add(0, childPointer); } else { collection.add(childPointer); } } } if (startWith != null) { int index = collection.indexOf(startWith); if (index == -1) { throw new JXPathException("Invalid starting pointer for iterator: " + startWith); } while (collection.size() > index) { if (!reverse) { collection.remove(collection.size() - 1); } else { collection.remove(0); } } } }
From source file:org.firesoa.common.jxpath.model.dom4j.Dom4JNodePointer.java
public NodePointer createChild(JXPathContext context, QName name, int index) { if (index == WHOLE_COLLECTION) { index = 0;/*from w ww.j a v a 2s . c om*/ } boolean success = getAbstractFactory(context).createObject(context, this, node, name.toString(), index); if (success) { NodeTest nodeTest; String prefix = name.getPrefix(); String namespaceURI = prefix == null ? null : context.getNamespaceURI(prefix); nodeTest = new NodeNameTest(name, namespaceURI); NodeIterator it = childIterator(nodeTest, false, null); if (it != null && it.setPosition(index + 1)) { return it.getNodePointer(); } } throw new JXPathAbstractFactoryException("Factory could not create " + "a child node for path: " + asPath() + "/" + name + "[" + (index + 1) + "]"); }
From source file:org.firesoa.common.jxpath.model.dom4j.Dom4JNodePointer.java
/** * ??nameattribute// w w w.j av a 2 s . c o m */ public NodePointer createAttribute(JXPathContext context, QName name) { if (!(node instanceof Element)) { return super.createAttribute(context, name); } Element element = (Element) node; String prefix = name.getPrefix(); if (prefix != null) { String nsUri = null; NamespaceResolver nsr = getNamespaceResolver(); if (nsr != null) { nsUri = nsr.getNamespaceURI(prefix); } if (nsUri == null) { throw new JXPathException("Unknown namespace prefix: " + prefix); } Namespace dom4jNs = Namespace.get(prefix, nsUri); org.dom4j.QName attributeName = new org.dom4j.QName(name.getName(), dom4jNs); Attribute attr = element.attribute(attributeName); if (attr == null) { element.addAttribute(attributeName, ""); } } else { Attribute attr = element.attribute(name.getName()); if (attr == null) { element.addAttribute(name.getName(), ""); } } NodeIterator it = attributeIterator(name); it.setPosition(1); return it.getNodePointer(); }