Return-Path: Delivered-To: apmail-incubator-sling-commits-archive@locus.apache.org Received: (qmail 31465 invoked from network); 28 Feb 2008 13:21:06 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 28 Feb 2008 13:21:06 -0000 Received: (qmail 98838 invoked by uid 500); 28 Feb 2008 13:21:01 -0000 Delivered-To: apmail-incubator-sling-commits-archive@incubator.apache.org Received: (qmail 98795 invoked by uid 500); 28 Feb 2008 13:21:01 -0000 Mailing-List: contact sling-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: sling-dev@incubator.apache.org Delivered-To: mailing list sling-commits@incubator.apache.org Received: (qmail 98786 invoked by uid 99); 28 Feb 2008 13:21:01 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 Feb 2008 05:21:01 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 Feb 2008 13:20:22 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id ABA7D1A9832; Thu, 28 Feb 2008 05:20:42 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r631960 - in /incubator/sling/trunk/scripting/javascript/src: main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableNode.java test/java/org/apache/sling/scripting/wrapper/ScriptableNodeTest.java Date: Thu, 28 Feb 2008 13:20:42 -0000 To: sling-commits@incubator.apache.org From: bdelacretaz@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080228132042.ABA7D1A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: bdelacretaz Date: Thu Feb 28 05:20:37 2008 New Revision: 631960 URL: http://svn.apache.org/viewvc?rev=631960&view=rev Log: SLING-282 - ScriptableNode.getNodes(namePattern) added Modified: incubator/sling/trunk/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableNode.java incubator/sling/trunk/scripting/javascript/src/test/java/org/apache/sling/scripting/wrapper/ScriptableNodeTest.java Modified: incubator/sling/trunk/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableNode.java URL: http://svn.apache.org/viewvc/incubator/sling/trunk/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableNode.java?rev=631960&r1=631959&r2=631960&view=diff ============================================================================== --- incubator/sling/trunk/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableNode.java (original) +++ incubator/sling/trunk/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableNode.java Thu Feb 28 05:20:37 2008 @@ -100,11 +100,26 @@ } } + public ScriptableItemMap jsFunction_getNodes(String namePattern) { + try { + NodeIterator iter = null; + if(namePattern == null || "undefined".equals(namePattern)) { + iter = node.getNodes(); + } else { + iter = node.getNodes(namePattern); + } + return new ScriptableItemMap(iter); + } catch (RepositoryException re) { + log.warn("Cannot get children of " + jsFunction_getPath() + " with pattern " + namePattern, re); + return new ScriptableItemMap(); + } + } + public ScriptableItemMap jsFunction_getProperties() { try { return new ScriptableItemMap(node.getProperties()); } catch (RepositoryException re) { - log.warn("Cannot get children of " + jsFunction_getPath(), re); + log.warn("Cannot get properties of " + jsFunction_getPath(), re); return new ScriptableItemMap(); } } Modified: incubator/sling/trunk/scripting/javascript/src/test/java/org/apache/sling/scripting/wrapper/ScriptableNodeTest.java URL: http://svn.apache.org/viewvc/incubator/sling/trunk/scripting/javascript/src/test/java/org/apache/sling/scripting/wrapper/ScriptableNodeTest.java?rev=631960&r1=631959&r2=631960&view=diff ============================================================================== --- incubator/sling/trunk/scripting/javascript/src/test/java/org/apache/sling/scripting/wrapper/ScriptableNodeTest.java (original) +++ incubator/sling/trunk/scripting/javascript/src/test/java/org/apache/sling/scripting/wrapper/ScriptableNodeTest.java Thu Feb 28 05:20:37 2008 @@ -143,4 +143,27 @@ final String code = "out.print(node.getProperty('text'));"; assertEquals(testText, script.evalToString(code, data)); } + + public void testGetNodesNoPattern() throws Exception { + final String path = "subgnnp_" + System.currentTimeMillis(); + final String code = + "node.addNode('" + path + "_A');\n" + + "node.addNode('" + path + "_B');\n" + + "var nodes = node.getNodes();\n" + + "for (i in nodes) { out.print(nodes[i].getName() + ' '); }\n" + ; + assertEquals(path + "_A " + path + "_B ", script.evalToString(code, data)); + } + + public void testGetNodesWithPattern() throws Exception { + final String path = "subgnnp_" + System.currentTimeMillis(); + final String code = + "node.addNode('1_" + path + "_A');\n" + + "node.addNode('1_" + path + "_B');\n" + + "node.addNode('2_" + path + "_C');\n" + + "var nodes = node.getNodes('1_*');\n" + + "for (i in nodes) { out.print(nodes[i].getName() + ' '); }\n" + ; + assertEquals("1_" + path + "_A 1_" + path + "_B ", script.evalToString(code, data)); + } }