/** * TODO document that method. * @return TODO */ public Object getResult() { return pointer.getNode(); }
public Object next() { return ((Pointer)iter.next()).getNode(); }
public synchronized List getNodes() { if (nodes == null) { nodes = new ArrayList(); for (int i = 0; i < pointers.size(); i++) { Pointer pointer = (Pointer) pointers.get(i); nodes.add(pointer.getNode()); } nodes = Collections.unmodifiableList(nodes); } return nodes; }
/** * TODO document that method. * @return TODO */ public Context getContext() { return new Context( pointer.getNode().toString() ); }
/** * Finds the first object that matches the specified XPath. It is equivalent * to <code>getPointer(xpath).getNode()</code>. Note that this method * produces the same result as <code>getValue()</code> on object models * like JavaBeans, but a different result for DOM/JDOM etc., because it * returns the Node itself, rather than its textual contents. * * @param xpath the xpath to be evaluated * @return the found object */ public Object selectSingleNode(String xpath) { Pointer pointer = getPointer(xpath); return pointer == null ? null : pointer.getNode(); }
/** * Finds all nodes that match the specified XPath. * * @param xpath the xpath to be evaluated * @return a list of found objects */ public List selectNodes(String xpath) { ArrayList list = new ArrayList(); Iterator iterator = iteratePointers(xpath); while (iterator.hasNext()) { Pointer pointer = (Pointer) iterator.next(); list.add(pointer.getNode()); } return list; }
private List<Runtime> getRuntimesList() { int windowId = services.getWindowManager().getActiveWindowId(); Iterator<?> iterator = xpathIterator(runtimesList.values(), "/.[windowID='" + windowId + "']"); List<Runtime> runtimes = Lists.newArrayList(); while (iterator.hasNext()) { runtimes.add((Runtime) ((Pointer) iterator.next()).getNode()); } return runtimes; }
public Object getNode(ObjectModel objectModel) throws ExpressionException { Iterator iter = this.compiledExpression.iteratePointers(getContext(objectModel)); if (iter.hasNext()) { Pointer first = (Pointer)iter.next(); if (iter.hasNext()) { List result = new LinkedList(); result.add(first.getNode()); boolean dom = (first.getNode() instanceof Node); while (iter.hasNext()) { Object obj = ((Pointer)iter.next()).getNode(); dom = dom && (obj instanceof Node); result.add(obj); } Object[] arr; if (dom) { arr = new Node[result.size()]; } else { arr = new Object[result.size()]; } result.toArray(arr); return arr; } return first.getNode(); } return null; }
private List<RuntimeInfo> getRuntimesList() { int windowId = services.getWindowManager().getActiveWindowId(); Iterator<?> iterator = xpathIterator(runtimesList.values(), String.format("/.[windowID='%d'", windowId)); List<RuntimeInfo> runtimes = Lists.newArrayList(); while (iterator.hasNext()) { runtimes.add((RuntimeInfo) ((Pointer) iterator.next()).getNode()); } return runtimes; }
/** * Checks if we are reentering a bean we have already seen and if so * returns true to prevent infinite recursion. * @return boolean */ private boolean isRecursive() { Object node = currentNodePointer.getNode(); for (int i = stack.size() - 1; --i >= 0;) { NodeIterator it = (NodeIterator) stack.get(i); Pointer pointer = it.getNodePointer(); if (pointer != null && pointer.getNode() == node) { return true; } } return false; } }
public JXPathContext getRelativeContext(Pointer pointer) { Object contextBean = pointer.getNode(); if (contextBean == null) { throw new JXPathException( "Cannot create a relative context for a non-existent node: " + pointer); } return new JXPathContextReferenceImpl(this, contextBean, pointer); }
/** * Actively performs the binding from the ObjectModel wrapped in a jxpath * context to the CocoonForm. */ public void doLoad(Widget frmModel, JXPathContext jxpc) throws BindingException { Pointer ptr = jxpc.getPointer(this.xpath); if (ptr.getNode() != null) { JXPathContext subContext = jxpc.getRelativeContext(ptr); super.doLoad(frmModel, subContext); if (getLogger().isDebugEnabled()) { getLogger().debug("done loading " + this); } } else { if (getLogger().isDebugEnabled()) { getLogger().debug("non-existent path: skipping " + this); } } }
public void doLoad(Widget frmModel, JXPathContext jctx) { if (this.loadScript != null) { Widget widget = selectWidget(frmModel, this.id); // Move to widget context Pointer pointer = jctx.getPointer(this.path); Map objectModel = processInfoProvider.getObjectModel(); try { JXPathContext newCtx = pointer.getNode() == null ? null : jctx.getRelativeContext(pointer); JavaScriptHelper.callFunction(this.loadScript, widget, new Object[]{widget, pointer, newCtx, this.childBindings}, objectModel); } catch (RuntimeException re) { // rethrow throw re; } catch (Exception e) { throw new RuntimeException("Error invoking JavaScript event handler", e); } } else { if (getLogger().isInfoEnabled()) { getLogger().info("[Javascript Binding] - loadForm: No javascript code available. Widget id=" + this.getId()); } } }
if (ptr.getNode() != null) {
public Iterator iterate(ObjectModel objectModel) throws ExpressionException { final JXPathContext jxpathContext = getContext(objectModel); Object val = this.compiledExpression.getPointer(jxpathContext, this.expression).getNode(); // FIXME: workaround for JXPath bug if (val instanceof NativeArray) return new JSIntrospector.NativeArrayIterator((NativeArray) val); else return new Iterator() { Iterator iter = compiledExpression.iteratePointers(jxpathContext); public boolean hasNext() { return iter.hasNext(); } public Object next() { return ((Pointer)iter.next()).getNode(); } public void remove() { iter.remove(); } }; }
/** * Actively performs the binding from the CocoonForm to the ObjectModel * wrapped in a jxpath context. */ public void doSave(Widget frmModel, JXPathContext jxpc) throws BindingException { if (this.factory != null) { jxpc.setFactory(this.factory); } Pointer ptr = jxpc.getPointer(this.xpath); if (ptr.getNode() == null) { jxpc.createPath(this.xpath); // Need to recreate the pointer after creating the path ptr = jxpc.getPointer(this.xpath); } JXPathContext subContext = jxpc.getRelativeContext(ptr); super.doSave(frmModel, subContext); if (getLogger().isDebugEnabled()) { getLogger().debug("done saving " + this); } }
if (ptr.getNode() != null) {
/** return the xpath for a particular object. * * @param target object to return xpath for. must be in object tree (or a similar object equivalent under equals()) * @return xpath for that object, or null * */ public final String getXPathFor(Object target) { // add variable we're looking for. JXPathContext cxt = this.accessJXPathContext(); cxt.getVariables().declareVariable("target",target); Pointer p = cxt.getPointer("//*[fn:matchTarget()]"); // tidyup cxt.getVariables().undeclareVariable("target"); // sanity check.. return p != null && p.getNode() != null ? p.asPath() : null; }
if (ptr.getNode() != null) {