criteria/common/src/org/immutables/criteria/constraints/CriteriaContext.java
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)