private Query(List<Field<?>> fields) { if (!isEmpty(fields)) { this.fields = new ArrayList<>(fields); } }
private <T> ArrayList<T> forkList(ArrayList<T> list) { if (isEmpty(list)) { return null; } return new ArrayList<>(list); }
private void visitJoinClause(SqlBuilder builder, boolean forSqlValidation) { if (isEmpty(joins)) { return; } builder.sql.append(" "); builder.appendConcatenatedCompilables(joins, " ", forSqlValidation); }
private void visitWhereClause(SqlBuilder builder, boolean forSqlValidation) { if (isEmpty(criterions)) { return; } builder.sql.append(" WHERE "); if (forSqlValidation) { builder.sql.append("("); } builder.appendConcatenatedCompilables(criterions, " AND ", forSqlValidation); if (forSqlValidation) { builder.sql.append(")"); } }
private void visitCompoundSelectClauses(SqlBuilder builder, boolean forSqlValidation) { if (isEmpty(compoundSelects)) { return; } builder.sql.append(" "); builder.appendConcatenatedCompilables(compoundSelects, " ", forSqlValidation); }
private Query(Field<?>... fields) { if (!isEmpty(fields)) { this.fields = new ArrayList<>(); SquidUtilities.addAll(this.fields, fields); } }
private void visitOrderByClause(SqlBuilder builder, boolean forSqlValidation) { if (isEmpty(orders)) { return; } builder.sql.append(" ORDER BY "); builder.appendConcatenatedCompilables(orders, ", ", forSqlValidation); }
private void visitGroupByClause(SqlBuilder builder, boolean forSqlValidation) { if (isEmpty(groupByFields)) { return; } builder.sql.append(" GROUP BY"); for (Field<?> groupBy : groupByFields) { builder.sql.append(" "); groupBy.appendQualifiedExpression(builder, forSqlValidation); builder.sql.append(","); } builder.sql.deleteCharAt(builder.sql.length() - 1); if (isEmpty(havings)) { return; } builder.sql.append(" HAVING "); builder.appendConcatenatedCompilables(havings, " AND ", forSqlValidation); }
private void visitSelectClause(SqlBuilder builder, boolean forSqlValidation) { builder.sql.append("SELECT "); if (distinct) { builder.sql.append("DISTINCT "); } List<Field<?>> toSelect; if (isEmpty(fields)) { // SELECT * may yield unexpected column names, so we get the full list of fields to specify explicit aliases toSelect = getFields(); } else { toSelect = fields; } builder.appendConcatenatedCompilables(toSelect, ", ", forSqlValidation); }
/** * @return the {@link Field Fields} this query selects */ public List<Field<?>> getFields() { if (isEmpty(selectAllCache)) { if (selectAllCache == null) { selectAllCache = new ArrayList<>(); } if (!isEmpty(fields)) { selectAllCache.addAll(fields); } else { SquidUtilities.addAll(selectAllCache, table.allFields()); if (joins != null) { for (Join join : joins) { SquidUtilities.addAll(selectAllCache, join.joinTable.allFields()); } } } } return new ArrayList<>(selectAllCache); }
/** * Add more {@link Field Fields} to be selected * * @param fields the additional Fields to be selected * @return this Query object, to allow chaining method calls */ public Query selectMore(List<Field<?>> fields) { if (immutable) { return fork().selectMore(fields); } if (!isEmpty(fields)) { if (this.fields == null) { this.fields = new ArrayList<>(fields); } else { this.fields.addAll(fields); } if (selectAllCache != null) { selectAllCache.clear(); } invalidateCompileCache(); } return this; }
/** * Add more {@link Field Fields} to be selected * * @param fields the additional Fields to be selected * @return this Query object, to allow chaining method calls */ public Query selectMore(Field<?>... fields) { if (immutable) { return fork().selectMore(fields); } if (!isEmpty(fields)) { if (this.fields == null) { this.fields = new ArrayList<>(); } SquidUtilities.addAll(this.fields, fields); if (selectAllCache != null) { selectAllCache.clear(); } invalidateCompileCache(); } return this; }
private Query(List<Field<?>> fields) { if (!isEmpty(fields)) { this.fields = new ArrayList<>(fields); } }
private <T> ArrayList<T> forkList(ArrayList<T> list) { if (isEmpty(list)) { return null; } return new ArrayList<>(list); }
private void visitJoinClause(SqlBuilder builder, boolean forSqlValidation) { if (isEmpty(joins)) { return; } builder.sql.append(" "); builder.appendConcatenatedCompilables(joins, " ", forSqlValidation); }
private void visitCompoundSelectClauses(SqlBuilder builder, boolean forSqlValidation) { if (isEmpty(compoundSelects)) { return; } builder.sql.append(" "); builder.appendConcatenatedCompilables(compoundSelects, " ", forSqlValidation); }
private Query(Field<?>... fields) { if (!isEmpty(fields)) { this.fields = new ArrayList<>(); SquidUtilities.addAll(this.fields, fields); } }
private void visitOrderByClause(SqlBuilder builder, boolean forSqlValidation) { if (isEmpty(orders)) { return; } builder.sql.append(" ORDER BY "); builder.appendConcatenatedCompilables(orders, ", ", forSqlValidation); }
private void visitWhereClause(SqlBuilder builder, boolean forSqlValidation) { if (isEmpty(criterions)) { return; } builder.sql.append(" WHERE "); if (forSqlValidation) { builder.sql.append("("); } builder.appendConcatenatedCompilables(criterions, " AND ", forSqlValidation); if (forSqlValidation) { builder.sql.append(")"); } }
private void visitSelectClause(SqlBuilder builder, boolean forSqlValidation) { builder.sql.append("SELECT "); if (distinct) { builder.sql.append("DISTINCT "); } List<Field<?>> toSelect; if (isEmpty(fields)) { // SELECT * may yield unexpected column names, so we get the full list of fields to specify explicit aliases toSelect = getFields(); } else { toSelect = fields; } builder.appendConcatenatedCompilables(toSelect, ", ", forSqlValidation); }