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