List of usage examples for org.apache.commons.lang.text StrBuilder insert
public StrBuilder insert(int index, double value)
From source file:com.google.visualization.datasource.util.SqlDataSourceHelper.java
/** * Builds the WHERE clause for comparison filter. This is the base case of * the recursive building of the WHERE clause of the sql query. * * @param whereClause A string builder representing the WHERE clause of the SQL query. * @param queryFilter The query filter.//from w w w . ja va 2 s . c o m */ private static void buildWhereCluaseForComparisonFilter(StrBuilder whereClause, QueryFilter queryFilter) { StrBuilder first = new StrBuilder(); StrBuilder second = new StrBuilder(); // Build the left part and the right part of the clause according to the filter's type. if (queryFilter instanceof ColumnColumnFilter) { ColumnColumnFilter filter = (ColumnColumnFilter) queryFilter; first.append(getColumnId(filter.getFirstColumn())); second.append(getColumnId(filter.getSecondColumn())); } else { // The filter is a ColumnValueFilter ColumnValueFilter filter = (ColumnValueFilter) queryFilter; first.append(getColumnId(filter.getColumn())); second.append(filter.getValue().toString()); if ((filter.getValue().getType() == ValueType.TEXT) || (filter.getValue().getType() == ValueType.DATE) || (filter.getValue().getType() == ValueType.DATETIME) || (filter.getValue().getType() == ValueType.TIMEOFDAY)) { second.insert(0, "\""); second.insert(second.length(), "\""); } } whereClause.append(buildWhereClauseFromRightAndLeftParts(first, second, ((ComparisonFilter) queryFilter).getOperator())); }
From source file:com.google.visualization.datasource.util.SqlDataSourceHelper.java
/** * Builds the where clause of the SQL query sql from the two given values and * the operator between these two values. * * @param value1 The first value in the where clause (either column id or value) * @param value2 The second value in the where clause (either column id or value) * @param operator The ComparisonFilter.Operator. * * @return A string builder representing the where clause of the SQL query. *//* w w w . j a va2 s . c o m*/ private static StrBuilder buildWhereClauseFromRightAndLeftParts(StrBuilder value1, StrBuilder value2, ComparisonFilter.Operator operator) { StrBuilder clause; switch (operator) { case EQ: clause = value1.append("=").append(value2); break; case NE: clause = value1.append("<>").append(value2); break; case LT: clause = value1.append("<").append(value2); break; case GT: clause = value1.append(">").append(value2); break; case LE: clause = value1.append("<=").append(value2); break; case GE: clause = value1.append(">=").append(value2); break; case CONTAINS: value2 = new StrBuilder(value2.toString().replace("\"", "")); clause = value1.append(" LIKE ").append("\"%").append(value2).append("%\""); break; case STARTS_WITH: value2 = new StrBuilder(value2.toString().replace("\"", "")); clause = value1.append(" LIKE ").append("\"").append(value2).append("%\""); break; case ENDS_WITH: value2 = new StrBuilder(value2.toString().replace("\"", "")); clause = value1.append(" LIKE ").append("\"%").append(value2).append("\""); break; case MATCHES: throw new RuntimeException("SQL does not support regular expression"); case LIKE: value2 = new StrBuilder(value2.toString().replace("\"", "")); clause = value1.append(" LIKE ").append("\"").append(value2).append("\""); break; default:// Should never get here. throw new RuntimeException("Operator was not found: " + operator); } clause.insert(0, "(").append(")"); return clause; }