[Yanel-dev] [Yarep] Introduce an iterator to access child nodes
Michael Wechner
michael.wechner at wyona.com
Mon Nov 29 15:48:46 CET 2010
Hi
In order to make Yarep more scalable re number of numbers per
"collection" I would like to introduce a method like:
Index: src/core/java/org/wyona/yarep/core/Node.java
===================================================================
--- src/core/java/org/wyona/yarep/core/Node.java (revision 55016)
+++ src/core/java/org/wyona/yarep/core/Node.java (working copy)
+
+ /**
+ * Get an iterator in order to access all child nodes without
scalability issues
+ *
+ * There is no guarantee that the nodes in the iterator will appear
in any specific order; they are not, in particular, guaranteed to appear
in alphabetical order.
+ *
+ * @return iterator of child nodes or empty iterator if there are
no child nodes.
+ * @throws RepositoryException if node is not a collection or if a
repository error occurs
+ */
+ public Iterator getIteratorOfNodes() throws RepositoryException;
because the existing method
public Node[] getNodes() throws RepositoryException;
returning an array just doesn't scale that well.
I have three questions:
1) Do think this actually makes sense?
2) What do you think about the method name and arguments? For example
JCR is using:
http://www.day.com/maven/jsr170/javadocs/jcr-1.0/javax/jcr/Node.html#getNodes%28%29
http://www.day.com/maven/jsr170/javadocs/jcr-1.0/javax/jcr/Node.html#getNodes%28java.lang.String%29
3) This will break backwards compatibility in a sense that custom Node
implementations won't compile anymore
, whereas nobody will be forced to do an actual implementation and one
could fix this quickly with something like:
/**
* @see org.wyona.yarep.core.Node#getIteratorOfNodes()
*/
public Iterator getIteratorOfNodes() throws RepositoryException {
throw new UnsupportedOperationException("TODO: Implement this
method"); // TODO
}
Are there any objections re backwards compatibility?
Thanks
Michael
More information about the Yanel-development
mailing list