Example usage for org.apache.commons.lang.text StrBuilder insert

List of usage examples for org.apache.commons.lang.text StrBuilder insert

Introduction

In this page you can find the example usage for org.apache.commons.lang.text StrBuilder insert.

Prototype

public StrBuilder insert(int index, double value) 

Source Link

Document

Inserts the value into this builder.

Usage

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;
}