DbQueryUtils.java revision 52e8d24f8492116f0b49b147576ce13a5f913aa2
152e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee/*
252e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee * Copyright (C) 2011 The Android Open Source Project
352e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee *
452e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee * Licensed under the Apache License, Version 2.0 (the "License");
552e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee * you may not use this file except in compliance with the License.
652e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee * You may obtain a copy of the License at
752e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee *
852e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee *      http://www.apache.org/licenses/LICENSE-2.0
952e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee *
1052e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee * Unless required by applicable law or agreed to in writing, software
1152e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee * distributed under the License is distributed on an "AS IS" BASIS,
1252e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1352e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee * See the License for the specific language governing permissions and
1452e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee * limitations under the License
1552e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee */
1652e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjeepackage com.android.providers.contacts.util;
1752e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee
1852e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjeeimport android.database.DatabaseUtils;
1952e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjeeimport android.text.TextUtils;
2052e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee
2152e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee/**
2252e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee * Static methods for helping us build database query selection strings.
2352e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee */
2452e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjeepublic class DbQueryUtils {
2552e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee    // Static class with helper methods, so private constructor.
2652e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee    private DbQueryUtils() {
2752e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee    }
2852e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee
2952e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee    /** Returns a WHERE clause asserting equality of a field to a value. */
3052e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee    public static String getEqualityClause(String field, String value) {
3152e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee        StringBuilder clause = new StringBuilder();
3252e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee        clause.append("(");
3352e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee        clause.append(field);
3452e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee        clause.append(" = ");
3552e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee        DatabaseUtils.appendEscapedSQLString(clause, value);
3652e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee        clause.append(")");
3752e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee        return clause.toString();
3852e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee    }
3952e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee
4052e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee    /** Concatenates any number of clauses using "AND". */
4152e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee    public static String concatenateClauses(String... clauses) {
4252e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee        StringBuilder builder = new StringBuilder();
4352e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee        for (String clause : clauses) {
4452e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee            if (!TextUtils.isEmpty(clause)) {
4552e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee                if (builder.length() > 0) {
4652e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee                    builder.append(" AND ");
4752e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee                }
4852e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee                builder.append("(");
4952e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee                builder.append(clause);
5052e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee                builder.append(")");
5152e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee            }
5252e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee        }
5352e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee        return builder.toString();
5452e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee    }
5552e8d24f8492116f0b49b147576ce13a5f913aa2Debashish Chatterjee}
56