You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2006/02/01 14:54:30 UTC

svn commit: r374065 - /incubator/jackrabbit/trunk/contrib/nt-ns-util/src/main/java/org/apache/jackrabbit/core/nodetype/compact/CompactNodeTypeDefReader.java

Author: tripod
Date: Wed Feb  1 05:54:23 2006
New Revision: 374065

URL: http://svn.apache.org/viewcvs?rev=374065&view=rev
Log:
- fixed JCR-312 

Modified:
    incubator/jackrabbit/trunk/contrib/nt-ns-util/src/main/java/org/apache/jackrabbit/core/nodetype/compact/CompactNodeTypeDefReader.java

Modified: incubator/jackrabbit/trunk/contrib/nt-ns-util/src/main/java/org/apache/jackrabbit/core/nodetype/compact/CompactNodeTypeDefReader.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/nt-ns-util/src/main/java/org/apache/jackrabbit/core/nodetype/compact/CompactNodeTypeDefReader.java?rev=374065&r1=374064&r2=374065&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/nt-ns-util/src/main/java/org/apache/jackrabbit/core/nodetype/compact/CompactNodeTypeDefReader.java (original)
+++ incubator/jackrabbit/trunk/contrib/nt-ns-util/src/main/java/org/apache/jackrabbit/core/nodetype/compact/CompactNodeTypeDefReader.java Wed Feb  1 05:54:23 2006
@@ -16,18 +16,18 @@
  */
 package org.apache.jackrabbit.core.nodetype.compact;
 
-import org.apache.jackrabbit.core.nodetype.NodeTypeDef;
-import org.apache.jackrabbit.core.nodetype.PropDefImpl;
-import org.apache.jackrabbit.core.nodetype.NodeDefImpl;
+import org.apache.jackrabbit.core.nodetype.InvalidConstraintException;
 import org.apache.jackrabbit.core.nodetype.ItemDef;
 import org.apache.jackrabbit.core.nodetype.NodeDef;
+import org.apache.jackrabbit.core.nodetype.NodeDefImpl;
+import org.apache.jackrabbit.core.nodetype.NodeTypeDef;
 import org.apache.jackrabbit.core.nodetype.PropDef;
+import org.apache.jackrabbit.core.nodetype.PropDefImpl;
 import org.apache.jackrabbit.core.nodetype.ValueConstraint;
-import org.apache.jackrabbit.core.nodetype.InvalidConstraintException;
 import org.apache.jackrabbit.core.value.InternalValue;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
 import org.apache.jackrabbit.name.IllegalNameException;
+import org.apache.jackrabbit.name.NoPrefixDeclaredException;
+import org.apache.jackrabbit.name.QName;
 import org.apache.jackrabbit.name.UnknownPrefixException;
 import org.apache.jackrabbit.util.name.NamespaceMapping;
 
@@ -41,7 +41,6 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.HashSet;
-import java.util.Arrays;
 
 /**
  * CompactNodeTypeDefReader. Parses node type definitions written in the compact
@@ -201,15 +200,12 @@
             ntd.setMixin(false);
             ntd.setPrimaryItemName(null);
             doNodeTypeName(ntd);
-            doSuperClasses(ntd);
+            doSuperTypes(ntd);
             doOptions(ntd);
-            // add nt:base to superclasses if not mixin
-            if (!ntd.isMixin()) {
-                HashSet superTypes = new HashSet(Arrays.asList(ntd.getSupertypes()));
-                if (!superTypes.contains(QName.NT_BASE)) {
-                    superTypes.add(QName.NT_BASE);
-                    ntd.setSupertypes((QName[]) superTypes.toArray(new QName[superTypes.size()]));
-                }
+            // add nt:base to supertypes if not mixin and does not define
+            // any supertype yet.
+            if (!ntd.isMixin() && ntd.getSupertypes().length == 0) {
+                ntd.setSupertypes(new QName[]{QName.NT_BASE});
             }
             doItemDefs(ntd);
             nodeTypeDefs.add(ntd);
@@ -273,8 +269,8 @@
      * @param ntd
      * @throws ParseException
      */
-    private void doSuperClasses(NodeTypeDef ntd) throws ParseException {
-        List supertypes = new ArrayList();
+    private void doSuperTypes(NodeTypeDef ntd) throws ParseException {
+        HashSet supertypes = new HashSet();
         if (!currentTokenEquals(Lexer.EXTENDS)) {
             return;
         }