docs: private void store( MutableCachedNode nodeTypeNode,
                          JcrNodeDefinition childNodeDef ) {
          // Find an existing node for this property definition ...
          final NodeKey key = childNodeDef.key();
          final Name name = childNodeDef.getInternalName();
          MutableCachedNode nodeDefnNode = null;
          if (!nodeTypeNode.isNew()) {
              if (nodeTypeNode.getChildReferences(system).hasChild(key)) {
                  // The node already exists ...
                  nodeDefnNode = system.mutable(key);
              }
          }
  
          List<Property> props = new ArrayList<Property>();
          props.add(propertyFactory.create(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.CHILD_NODE_DEFINITION));
  
          if (!JcrNodeType.RESIDUAL_ITEM_NAME.equals(childNodeDef.getName())) {
              props.add(propertyFactory.create(JcrLexicon.NAME, name));
          }
  
          if (childNodeDef.defaultPrimaryTypeName() != null) {
              props.add(propertyFactory.create(JcrLexicon.DEFAULT_PRIMARY_TYPE, childNodeDef.defaultPrimaryTypeName()));
          }
  
          props.add(propertyFactory.create(JcrLexicon.REQUIRED_PRIMARY_TYPES, childNodeDef.requiredPrimaryTypeNames()));
          props.add(propertyFactory.create(JcrLexicon.SAME_NAME_SIBLINGS, childNodeDef.allowsSameNameSiblings()));
          props.add(propertyFactory.create(JcrLexicon.ON_PARENT_VERSION,
                                           OnParentVersionAction.nameFromValue(childNodeDef.getOnParentVersion())));
          props.add(propertyFactory.create(JcrLexicon.AUTO_CREATED, childNodeDef.isAutoCreated()));
          props.add(propertyFactory.create(JcrLexicon.MANDATORY, childNodeDef.isMandatory()));
          props.add(propertyFactory.create(JcrLexicon.PROTECTED, childNodeDef.isProtected()));
  
          // Now either update the existing node or create a new node ..
          if (nodeDefnNode != null) {
              // Update the properties ...
              nodeDefnNode.setProperties(system, props);
          } else {
              // We have to create the node type node ...
              nodeDefnNode = nodeTypeNode.createChild(system, key, name, props);
          }
      }