DatabaseUtilsCompat.java revision 1935ed3af7c6545bc38adfdc6026d87a3249222f
11935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov/*
21935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov * Copyright (C) 2011 The Android Open Source Project
31935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov *
41935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov * Licensed under the Apache License, Version 2.0 (the "License");
51935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov * you may not use this file except in compliance with the License.
61935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov * You may obtain a copy of the License at
71935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov *
81935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov *      http://www.apache.org/licenses/LICENSE-2.0
91935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov *
101935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov * Unless required by applicable law or agreed to in writing, software
111935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov * distributed under the License is distributed on an "AS IS" BASIS,
121935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov * See the License for the specific language governing permissions and
141935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov * limitations under the License.
151935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov */
161935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov
171935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganovpackage android.support.v4.database;
181935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov
191935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganovimport android.text.TextUtils;
201935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov
211935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov/**
221935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov * Helper for accessing newer features in DatabaseUtils.
231935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov */
241935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganovpublic class DatabaseUtilsCompat {
251935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov
261935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov    private DatabaseUtilsCompat() {
271935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov        /* Hide constructor */
281935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov    }
291935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov
301935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov    /**
311935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov     * Concatenates two SQL WHERE clauses, handling empty or null values.
321935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov     */
331935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov    public static String concatenateWhere(String a, String b) {
341935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov        if (TextUtils.isEmpty(a)) {
351935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov            return b;
361935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov        }
371935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov        if (TextUtils.isEmpty(b)) {
381935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov            return a;
391935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov        }
401935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov
411935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov        return "(" + a + ") AND (" + b + ")";
421935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov    }
431935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov
441935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov    /**
451935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov     * Appends one set of selection args to another. This is useful when adding a selection
461935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov     * argument to a user provided set.
471935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov     */
481935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov    public static String[] appendSelectionArgs(String[] originalValues, String[] newValues) {
491935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov        if (originalValues == null || originalValues.length == 0) {
501935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov            return newValues;
511935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov        }
521935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov        String[] result = new String[originalValues.length + newValues.length ];
531935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov        System.arraycopy(originalValues, 0, result, 0, originalValues.length);
541935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov        System.arraycopy(newValues, 0, result, originalValues.length, newValues.length);
551935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov        return result;
561935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov    }
571935ed3af7c6545bc38adfdc6026d87a3249222fSvetoslav Ganov}
58