code: TraversalContext<BE, E> replacePath(Query path) {
          return new TraversalContext<>(inventory, path, Query.empty(), backend, entityClass, configuration,
                  observableContext, transactionRetries, this, null, transactionConstructor);
      }
docs: Constructs a new traversal context by replacing the source path with the provided query and clearing out the
  selected candidates.
  
  @param path the source path of the new context
  @return a new traversal context with the provided source path and empty select candidates, but otherwise
  identical to this one.