public CriteriaContext<R> add(Path<?> path) {
    final Path<?> newPath = this.path != null ? Expressions.path(this.path.path() + "." + path.path()) : path;
    return new CriteriaContext<>(operator, expression, newPath, creator);
  }
public CriteriaContext<R> add(Path<?> path) {
    final Path<?> newPath = this.path != null ? Expressions.path(this.path.path() + "." + path.path()) : path;
    return new CriteriaContext<>(operator, expression, newPath, creator);
  }
public CriteriaContext < R > add ( Path < ? > path ) { final Path < ? > newPath = this . path != null ? Expressions . path ( this . path . path ( ) + "." + path . path ( ) ) : path ; return new CriteriaContext <> ( operator , expression , newPath , creator ) ; }
adds an intermediate step (list of paths usually)
adds an intermediate step ( list of paths usually )