@Override public LetPath on(final Expression expression) { element(new Element() { @Override public String export() { return "ON " + expression.toString(); } }); return new DefaultLetPath(this); } }
@Override public JoinPath innerJoin(Expression from) { return innerJoin(from.toString()); }
@Override public NestPath innerNest(Expression from) { return innerNest(from.toString()); }
@Override public NestPath innerNest(String from) { element(new NestElement(JoinType.INNER, from)); return new DefaultNestPath(this); }
@Override public JoinPath leftOuterJoin(Expression from) { return leftOuterJoin(from.toString()); }
@Override public NestPath leftNest(Expression from) { return leftNest(from.toString()); }
@Override public JoinPath join(Expression from) { return join(from.toString()); }
@Override public NestPath leftOuterNest(Expression from) { return leftOuterNest(from.toString()); }
@Override public JoinPath leftJoin(Expression from) { return leftJoin(from.toString()); }
@Override public UnnestPath innerUnnest(Expression path) { return innerUnnest(path.toString()); }
@Override public JoinPath join(String path) { element(new JoinElement(JoinType.DEFAULT, path)); return new DefaultJoinPath(this); }
@Override public UnnestPath innerUnnest(String path) { element(new UnnestElement(JoinType.INNER, path)); return new DefaultUnnestPath(this); }
@Override public LetPath onKeys(Expression expression) { element(new KeysElement(KeysElement.ClauseType.JOIN_ON, expression)); return new DefaultLetPath(this); }
@Override public WherePath let(Alias... aliases) { element(new LetElement(aliases)); return new DefaultWherePath(this); }
@Override public LetPath as(String alias) { element(new AsElement(alias)); return new DefaultLetPath(this); }
@Override public NestPath leftNest(String from) { element(new NestElement(JoinType.LEFT, from)); return new DefaultNestPath(this); }
@Override public LetPath useKeys(Expression expression) { element(new KeysElement(KeysElement.ClauseType.USE_KEYSPACE, expression)); return new DefaultLetPath(this); }
@Override public NestPath leftOuterNest(String from) { element(new NestElement(JoinType.LEFT_OUTER, from)); return new DefaultNestPath(this); }
@Override public JoinPath leftJoin(String path) { element(new JoinElement(JoinType.LEFT, path)); return new DefaultJoinPath(this); }
@Override public UnnestPath unnest(String path) { element(new UnnestElement(JoinType.DEFAULT, path)); return new DefaultUnnestPath(this); }