You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-dev@jackrabbit.apache.org by Michael Dürig <md...@apache.org> on 2012/12/04 16:15:40 UTC
Re: svn commit: r1416949 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/
oak...
Hi,
On 4.12.12 14:12, angela@apache.org wrote:
> /**
> - * FIXME in contrast what the method name implies this method returns the transitive closure of the super types
> - * TODO clarify contract, what is the difference between this method and NodeType.getSuperTypes()
> * Calculates and returns all effective node types of the given tree.
> *
> * @param tree
> * @return all node types of the given tree
> - * @throws RepositoryException if the type information can not be accessed
> + * @throws RepositoryException if the type information can not be accessed,
> + * @see <a href="http://www.jcp.org/en/jsr/detail?id=283">JCR 2.0 Specification,
> + * Section 3.7.6.5</a> for the definition of the effective node type.
> */
> Iterable<NodeType> getEffectiveNodeTypes(Tree tree) throws RepositoryException;
I don't think the fixme is addressed with this change. According to the
cited section in the spec. a node has *an* effective node type. How come
this method returns an iterator? Also the semantics of subtyping
(3.7.6.6) is not adhered to.
I know that the return value of this method is *used* to do effective
node type calculations and I am not opposed to that. However, we should
then change the names of this method (and its sister) to better reflect
what it actually does.
Michael