code: public static NodeKey createNodeKeyFromIdentifier( String identifier,
                                                         NodeKey rootKey ) {
          // If this node is a random identifier, then we need to use it as a node key identifier ...
          if (NodeKey.isValidRandomIdentifier(identifier)) {
              return rootKey.withId(identifier);
          }
          return new NodeKey(identifier);
      }
docs: Determine if the supplied string represents just the {@link Node#getIdentifier() node's identifier} or whether it is a
  string representation of a NodeKey. If it is just the node's identifier, then the NodeKey is created by using the same
  {@link NodeKey#getSourceKey() source key} and {@link NodeKey#getWorkspaceKey() workspace key} from the supplied root node.
  
  @param identifier the identifier string; may not be null
  @param rootKey the node of the root in the workspace; may not be null
  @return the node key re-created from the supplied identifier; never null