code: public Collection<JcrNodeDefinition> getMandatoryChildNodeDefinitions( Name primaryType,
                                                                             Set<Name> mixinTypes ) {
          if (mixinTypes.isEmpty()) {
              return mandatoryChildrenNodeTypes.get(primaryType);
          }
          Set<JcrNodeDefinition> defn = new HashSet<JcrNodeDefinition>();
          defn.addAll(mandatoryChildrenNodeTypes.get(primaryType));
          for (Name mixinType : mixinTypes) {
              defn.addAll(mandatoryChildrenNodeTypes.get(mixinType));
          }
          return defn;
      }
docs: Get the mandatory child node definitions for a node with the named primary type and mixin types. Note that the
  {@link #hasMandatoryChildNodeDefinitions(Name, Set)} method should first be called with the primary type and mixin types;
  if that method returns <code>true</code>, then this method will never return an empty collection.
  
  @param primaryType the primary type name; may not be null
  @param mixinTypes the mixin type names; may not be null but may be empty
  @return the collection of mandatory child node definitions; never null but possibly empty