@Override public final void addJoinOnKey(TableLike<?> table, JoinType type) throws DataAccessException { // TODO: This and similar methods should be refactored, patterns extracted... int index = getFrom().size() - 1; Table<?> joined = null; switch (type) { case JOIN: joined = getFrom().get(index).join(table).onKey(); break; case LEFT_OUTER_JOIN: joined = getFrom().get(index).leftOuterJoin(table).onKey(); break; case RIGHT_OUTER_JOIN: joined = getFrom().get(index).rightOuterJoin(table).onKey(); break; case FULL_OUTER_JOIN: joined = getFrom().get(index).fullOuterJoin(table).onKey(); break; default: throw new IllegalArgumentException("JoinType " + type + " is not supported with the addJoinOnKey() method. Use INNER or OUTER JOINs only"); } getFrom().set(index, joined); }
@Override public final void addJoinOnKey(TableLike<?> table, JoinType type, ForeignKey<?, ?> key) { // TODO: This and similar methods should be refactored, patterns extracted... int index = getFrom().size() - 1; Table<?> joined = null; switch (type) { case JOIN: joined = getFrom().get(index).join(table).onKey(key); break; case LEFT_OUTER_JOIN: joined = getFrom().get(index).leftOuterJoin(table).onKey(key); break; case RIGHT_OUTER_JOIN: joined = getFrom().get(index).rightOuterJoin(table).onKey(key); break; case FULL_OUTER_JOIN: joined = getFrom().get(index).fullOuterJoin(table).onKey(key); break; default: throw new IllegalArgumentException("JoinType " + type + " is not supported with the addJoinOnKey() method. Use INNER or OUTER JOINs only"); } getFrom().set(index, joined); }
@Override public final void addJoinOnKey(TableLike<?> table, JoinType type, TableField<?, ?>... keyFields) throws DataAccessException { // TODO: This and similar methods should be refactored, patterns extracted... int index = getFrom().size() - 1; Table<?> joined = null; switch (type) { case JOIN: joined = getFrom().get(index).join(table).onKey(keyFields); break; case LEFT_OUTER_JOIN: joined = getFrom().get(index).leftOuterJoin(table).onKey(keyFields); break; case RIGHT_OUTER_JOIN: joined = getFrom().get(index).rightOuterJoin(table).onKey(keyFields); break; case FULL_OUTER_JOIN: joined = getFrom().get(index).fullOuterJoin(table).onKey(keyFields); break; default: throw new IllegalArgumentException("JoinType " + type + " is not supported with the addJoinOnKey() method. Use INNER or OUTER JOINs only"); } getFrom().set(index, joined); }
@Override public final void addJoinUsing(TableLike<?> table, JoinType type, Collection<? extends Field<?>> fields) { // TODO: This and similar methods should be refactored, patterns extracted... int index = getFrom().size() - 1; Table<?> joined = null; switch (type) { case JOIN: joined = getFrom().get(index).join(table).using(fields); break; case LEFT_OUTER_JOIN: joined = getFrom().get(index).leftOuterJoin(table).using(fields); break; case RIGHT_OUTER_JOIN: joined = getFrom().get(index).rightOuterJoin(table).using(fields); break; case FULL_OUTER_JOIN: joined = getFrom().get(index).fullOuterJoin(table).using(fields); break; default: throw new IllegalArgumentException("JoinType " + type + " is not supported with the addJoinUsing() method. Use INNER or OUTER JOINs only"); } getFrom().set(index, joined); }
joined = getFrom().get(index).join(table).on(conditions); break; case LEFT_OUTER_JOIN: { TablePartitionByStep p = getFrom().get(index).leftOuterJoin(table); TableOnStep o = p; TablePartitionByStep p = getFrom().get(index).rightOuterJoin(table); TableOnStep o = p; joined = getFrom().get(index).fullOuterJoin(table).on(conditions); break; joined = getFrom().get(index).crossJoin(table); break; case NATURAL_JOIN: joined = getFrom().get(index).naturalJoin(table); break; case NATURAL_LEFT_OUTER_JOIN: joined = getFrom().get(index).naturalLeftOuterJoin(table); break; case NATURAL_RIGHT_OUTER_JOIN: joined = getFrom().get(index).naturalRightOuterJoin(table); break;
@Override public final void addJoinOnKey(TableLike<?> table, JoinType type) throws DataAccessException { // TODO: This and similar methods should be refactored, patterns extracted... int index = getFrom().size() - 1; Table<?> joined = null; switch (type) { case JOIN: case LEFT_OUTER_JOIN: case RIGHT_OUTER_JOIN: case FULL_OUTER_JOIN: case LEFT_SEMI_JOIN: case LEFT_ANTI_JOIN: joined = getFrom().get(index).join(table, type).onKey(); break; default: throw new IllegalArgumentException("JoinType " + type + " is not supported with the addJoinOnKey() method. Use INNER or OUTER JOINs only"); } getFrom().set(index, joined); }
@Override public final void addJoinOnKey(TableLike<?> table, JoinType type, TableField<?, ?>... keyFields) throws DataAccessException { // TODO: This and similar methods should be refactored, patterns extracted... int index = getFrom().size() - 1; Table<?> joined = null; switch (type) { case JOIN: case LEFT_OUTER_JOIN: case RIGHT_OUTER_JOIN: case FULL_OUTER_JOIN: case LEFT_SEMI_JOIN: case LEFT_ANTI_JOIN: joined = getFrom().get(index).join(table, type).onKey(keyFields); break; default: throw new IllegalArgumentException("JoinType " + type + " is not supported with the addJoinOnKey() method. Use INNER or OUTER JOINs only"); } getFrom().set(index, joined); }
@Override public final void addJoinUsing(TableLike<?> table, JoinType type, Collection<? extends Field<?>> fields) { // TODO: This and similar methods should be refactored, patterns extracted... int index = getFrom().size() - 1; Table<?> joined = null; switch (type) { case JOIN: case LEFT_OUTER_JOIN: case RIGHT_OUTER_JOIN: case FULL_OUTER_JOIN: case LEFT_SEMI_JOIN: case LEFT_ANTI_JOIN: joined = getFrom().get(index).join(table, type).using(fields); break; default: throw new IllegalArgumentException("JoinType " + type + " is not supported with the addJoinUsing() method. Use INNER or OUTER JOINs only"); } getFrom().set(index, joined); }
@Override public final void addJoinOnKey(TableLike<?> table, JoinType type, ForeignKey<?, ?> key) { // TODO: This and similar methods should be refactored, patterns extracted... int index = getFrom().size() - 1; Table<?> joined = null; switch (type) { case JOIN: case LEFT_OUTER_JOIN: case RIGHT_OUTER_JOIN: case FULL_OUTER_JOIN: case LEFT_SEMI_JOIN: case LEFT_ANTI_JOIN: joined = getFrom().get(index).join(table, type).onKey(key); break; default: throw new IllegalArgumentException("JoinType " + type + " is not supported with the addJoinOnKey() method. Use INNER or OUTER JOINs only"); } getFrom().set(index, joined); }
@SuppressWarnings("unchecked") @Override public final Class<? extends R> getRecordType() { // Generated record classes only come into play, when the select is // - on a single table // - a select * if (getFrom().size() == 1 && getSelect0().isEmpty()) { return (Class<? extends R>) getFrom().get(0).asTable().getRecordType(); } else { return (Class<? extends R>) RecordImpl.class; } }
@SuppressWarnings("unchecked") @Override public final Class<? extends R> getRecordType() { // Generated record classes only come into play, when the select is // - on a single table // - a select * if (getFrom().size() == 1 && getSelect0().isEmpty()) { return (Class<? extends R>) getFrom().get(0).asTable().getRecordType(); } else { return (Class<? extends R>) RecordImpl.class; } }