@Override public ReportQuery build() { validate(); StringBuilder stringBuilder = new StringBuilder(); // Creates SELECT. stringBuilder.append("SELECT "); Joiner.on(", ").skipNulls().appendTo(stringBuilder, fields); // Creates FROM. stringBuilder.append(String.format(" FROM %s", from)); // Creates WHERE. if (!whereBuilders.isEmpty()) { stringBuilder.append( String.format(" WHERE %s", Joiner.on(" AND ").skipNulls().join(whereBuilders))); } // Creates DURING. if (dateRange != null) { stringBuilder.append(String.format(" DURING %s", dateRange)); } else if (startDate != null && endDate != null) { stringBuilder.append( String.format( " DURING %s,%s", startDate.toString(DURING_DATE_FORMAT), endDate.toString(DURING_DATE_FORMAT))); } return new ReportQuery(stringBuilder.toString()); }
@Override public ReportQuery build() { validate(); StringBuilder stringBuilder = new StringBuilder(); // Creates SELECT. stringBuilder.append("SELECT "); Joiner.on(", ").skipNulls().appendTo(stringBuilder, fields); // Creates FROM. stringBuilder.append(String.format(" FROM %s", from)); // Creates WHERE. if (!whereBuilders.isEmpty()) { stringBuilder.append( String.format(" WHERE %s", Joiner.on(" AND ").skipNulls().join(whereBuilders))); } // Creates DURING. if (dateRange != null) { stringBuilder.append(String.format(" DURING %s", dateRange)); } else if (startDate != null && endDate != null) { stringBuilder.append( String.format( " DURING %s,%s", startDate.toString(DURING_DATE_FORMAT), endDate.toString(DURING_DATE_FORMAT))); } return new ReportQuery(stringBuilder.toString()); }