code: public boolean isFullyDefinedType( Name primaryTypeName,
                                         Set<Name> mixinTypeNames ) {
          if (!fullyDefinedNodeTypes.contains(primaryTypeName)) return false;
          if (!mixinTypeNames.isEmpty()) {
              for (Name nodeTypeName : mixinTypeNames) {
                  if (!fullyDefinedNodeTypes.contains(nodeTypeName)) return false;
              }
          }
          return true;
      }
docs: Determine if the named node type does not appear in any of the other sets. Such node types are fully-defined, in that nodes
  using them require no additional processing prior to save.
  <p>
  Note that this method's signature is different from the other methods. This is because a node's primary type and mixin
  types must all be fully-defined types.
  </p>
  
  @param primaryTypeName the name of the primary node type; may not be null
  @param mixinTypeNames the set of mixin type names; may be null or empty
  @return true if the named node type is fully-defined, or false otherwise