Author: rhauch
Date: 2009-06-04 15:16:36 -0400 (Thu, 04 Jun 2009)
New Revision: 973
Modified:
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/RepositoryNodeTypeManager.java
Log:
DNA-442 Small change to allow node types to be registered in any order (within the batch)
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/RepositoryNodeTypeManager.java
===================================================================
---
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/RepositoryNodeTypeManager.java 2009-06-04
18:13:03 UTC (rev 972)
+++
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/RepositoryNodeTypeManager.java 2009-06-04
19:16:36 UTC (rev 973)
@@ -1413,10 +1413,21 @@
List<JcrNodeDefinition> nodeDefs = new
ArrayList<JcrNodeDefinition>(
nodeType.getDeclaredChildNodeDefinitions().length);
+ for (JcrNodeDefinition nodeDef :
nodeType.getDeclaredChildNodeDefinitions()) {
+ nodeDefs.add(nodeDef.with(this.context).with(this));
+ }
+ // Create a new node type that also has the correct property and child
node definitions associated
+ JcrNodeType newNodeType = new JcrNodeType(this.context, this,
nodeType.getInternalName(), supertypes,
+
nodeType.getInternalPrimaryItemName(), nodeDefs, propertyDefs,
+ nodeType.isMixin(),
nodeType.hasOrderableChildNodes());
+ typesPendingRegistration.add(newNodeType);
+ }
+
+ // Make sure the nodes have primary types that are either already registered,
or pending registration ...
+ for (JcrNodeType nodeType : typesPendingRegistration) {
for (JcrNodeDefinition nodeDef :
nodeType.getDeclaredChildNodeDefinitions()) {
JcrNodeType[] requiredPrimaryTypes = new
JcrNodeType[nodeDef.requiredPrimaryTypeNames().length];
-
int i = 0;
for (Name primaryTypeName : nodeDef.requiredPrimaryTypeNames()) {
requiredPrimaryTypes[i] = findTypeInMapOrList(primaryTypeName,
typesPendingRegistration);
@@ -1427,15 +1438,7 @@
}
i++;
}
-
- nodeDefs.add(nodeDef.with(this.context).with(this));
}
-
- // Create a new node type that also has the correct property and child
node definitions associated
- JcrNodeType newNodeType = new JcrNodeType(this.context, this,
nodeType.getInternalName(), supertypes,
-
nodeType.getInternalPrimaryItemName(), nodeDefs, propertyDefs,
- nodeType.isMixin(),
nodeType.hasOrderableChildNodes());
- typesPendingRegistration.add(newNodeType);
}
// Graph.Batch batch = graph.batch();
Show replies by date