dmitri      2004/06/29 14:15:46

  Modified:    jxpath/src/java/org/apache/commons/jxpath JXPathContext.java
  Log:
  Added selectNodes and selectSingleNode methods
  
  Revision  Changes    Path
  1.25      +37 -1     
jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/JXPathContext.java
  
  Index: JXPathContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/JXPathContext.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- JXPathContext.java        4 Apr 2004 23:16:23 -0000       1.24
  +++ JXPathContext.java        29 Jun 2004 21:15:46 -0000      1.25
  @@ -16,8 +16,10 @@
   package org.apache.commons.jxpath;
   
   import java.text.DecimalFormatSymbols;
  +import java.util.ArrayList;
   import java.util.HashMap;
   import java.util.Iterator;
  +import java.util.List;
   import java.util.Locale;
   
   /**
  @@ -623,6 +625,40 @@
        */
       protected abstract CompiledExpression compilePath(String xpath);
   
  +    /**
  +      * 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);
  +     if (pointer == null) {
  +             return null;
  +     }
  +             return 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;
  +    }
  +    
       /**
        * Evaluates the xpath and returns the resulting object. Primitive
        * types are wrapped into objects.
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to