You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2008/02/28 14:20:42 UTC
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
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));
+ }
}