You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mr...@apache.org on 2012/09/12 11:57:33 UTC
svn commit: r1383871 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/NodeState.java
Author: mreutegg
Date: Wed Sep 12 09:57:33 2012
New Revision: 1383871
URL: http://svn.apache.org/viewvc?rev=1383871&view=rev
Log:
Clarify NodeState.getChildNodeEntries()
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/NodeState.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/NodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/NodeState.java?rev=1383871&r1=1383870&r2=1383871&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/NodeState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/NodeState.java Wed Sep 12 09:57:33 2012
@@ -166,11 +166,20 @@ public interface NodeState {
Iterable<String> getChildNodeNames();
/**
- * Returns an iterable of the child node entries of this instance.
- * Multiple iterations are guaranteed to return the child nodes in
- * the same order, but the specific order used is implementation
- * dependent and may change across different states of the same node.
- * @return child node entries in some stable order
+ * Returns an iterable of the child node entries of this instance. Multiple
+ * iterations are guaranteed to return the child nodes in the same order,
+ * but the specific order used is implementation dependent and may change
+ * across different states of the same node.
+ * <p/>
+ * <i>Note on cost and performance:</i> while it is possible to iterate over
+ * all child <code>NodeState</code>s with the two methods {@link
+ * #getChildNodeNames()} and {@link #getChildNode(String)}, this method is
+ * considered more efficient because an implementation can potentially
+ * perform the retrieval of the name and <code>NodeState</code> in one call.
+ * This results in O(n) vs. O(n log n) when iterating over the child node
+ * names and then look up the <code>NodeState</code> by name.
+ *
+ * @return child node entries in some stable order
*/
@Nonnull
Iterable<? extends ChildNodeEntry> getChildNodeEntries();