19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.content; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcelable; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.ArrayList; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.HashMap; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Map; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Set; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This class is used to store a set of values that the {@link ContentResolver} 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * can process. 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic final class ContentValues implements Parcelable { 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String TAG = "ContentValues"; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** Holds the actual values */ 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private HashMap<String, Object> mValues; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Creates an empty set of values using the default initial size 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContentValues() { 42bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana // Choosing a default size of 8 based on analysis of typical 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // consumption by applications. 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues = new HashMap<String, Object>(8); 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Creates an empty set of values using the given initial size 49bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param size the initial size of the set of values 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContentValues(int size) { 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues = new HashMap<String, Object>(size, 1.0f); 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Creates a set of values copied from the given set 58bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param from the values to copy 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContentValues(ContentValues from) { 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues = new HashMap<String, Object>(from.mValues); 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Creates a set of values copied from the given HashMap. This is used 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * by the Parcel unmarshalling code. 68bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 691c4027b68d5938795cc536c1d45e8d942ea537a4Daniel Lehmann * @param values the values to start with 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private ContentValues(HashMap<String, Object> values) { 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues = values; 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean equals(Object object) { 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!(object instanceof ContentValues)) { 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mValues.equals(((ContentValues) object).mValues); 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int hashCode() { 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mValues.hashCode(); 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Adds a value to the set. 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the name of the value to put 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the data for the value to put 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void put(String key, String value) { 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.put(key, value); 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Adds all values from the passed in ContentValues. 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param other the ContentValues from which to copy 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putAll(ContentValues other) { 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.putAll(other.mValues); 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Adds a value to the set. 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the name of the value to put 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the data for the value to put 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void put(String key, Byte value) { 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.put(key, value); 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Adds a value to the set. 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the name of the value to put 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the data for the value to put 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void put(String key, Short value) { 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.put(key, value); 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Adds a value to the set. 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the name of the value to put 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the data for the value to put 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void put(String key, Integer value) { 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.put(key, value); 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Adds a value to the set. 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the name of the value to put 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the data for the value to put 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void put(String key, Long value) { 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.put(key, value); 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Adds a value to the set. 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the name of the value to put 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the data for the value to put 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void put(String key, Float value) { 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.put(key, value); 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Adds a value to the set. 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the name of the value to put 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the data for the value to put 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void put(String key, Double value) { 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.put(key, value); 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Adds a value to the set. 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the name of the value to put 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the data for the value to put 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void put(String key, Boolean value) { 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.put(key, value); 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 177bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Adds a value to the set. 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the name of the value to put 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value the data for the value to put 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void put(String key, byte[] value) { 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.put(key, value); 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Adds a null value to the set. 190bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the name of the value to make null 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putNull(String key) { 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.put(key, null); 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the number of values. 199bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the number of values 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int size() { 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mValues.size(); 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 207c74ee2f8d3a9f4ebd502c037623cdbaf664c28a9Mike Tsao * Indicates whether this collection is empty. 208c74ee2f8d3a9f4ebd502c037623cdbaf664c28a9Mike Tsao * 209c74ee2f8d3a9f4ebd502c037623cdbaf664c28a9Mike Tsao * @return true iff size == 0 210c74ee2f8d3a9f4ebd502c037623cdbaf664c28a9Mike Tsao * {@hide} 211c74ee2f8d3a9f4ebd502c037623cdbaf664c28a9Mike Tsao * TODO: consider exposing this new method publicly 212c74ee2f8d3a9f4ebd502c037623cdbaf664c28a9Mike Tsao */ 213c74ee2f8d3a9f4ebd502c037623cdbaf664c28a9Mike Tsao public boolean isEmpty() { 214c74ee2f8d3a9f4ebd502c037623cdbaf664c28a9Mike Tsao return mValues.isEmpty(); 215c74ee2f8d3a9f4ebd502c037623cdbaf664c28a9Mike Tsao } 216c74ee2f8d3a9f4ebd502c037623cdbaf664c28a9Mike Tsao 217c74ee2f8d3a9f4ebd502c037623cdbaf664c28a9Mike Tsao /** 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Remove a single value. 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the name of the value to remove 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void remove(String key) { 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.remove(key); 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Removes all values. 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void clear() { 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.clear(); 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns true if this object has the named value. 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to check for 237bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * @return {@code true} if the value is present, {@code false} otherwise 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean containsKey(String key) { 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mValues.containsKey(key); 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2441276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * Gets a value. Valid value types are {@link String}, {@link Boolean}, 2451276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * {@link Number}, and {@code byte[]} implementations. 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 2481276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * @return the data for the value, or {@code null} if the value is missing or if {@code null} 2491276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * was previously added with the given {@code key} 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Object get(String key) { 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mValues.get(key); 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a String. 257bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the String for the value 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getAsString(String key) { 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 2631c4027b68d5938795cc536c1d45e8d942ea537a4Daniel Lehmann return value != null ? value.toString() : null; 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a Long. 268bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 2701276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * @return the Long value, or {@code null} if the value is missing or cannot be converted 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Long getAsLong(String key) { 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return value != null ? ((Number) value).longValue() : null; 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Long.valueOf(value.toString()); 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (NumberFormatException e2) { 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Cannot parse Long value for " + value + " at key " + key); 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 285bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Long: " + value, e); 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to an Integer. 293bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 2951276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * @return the Integer value, or {@code null} if the value is missing or cannot be converted 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Integer getAsInteger(String key) { 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return value != null ? ((Number) value).intValue() : null; 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Integer.valueOf(value.toString()); 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (NumberFormatException e2) { 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Cannot parse Integer value for " + value + " at key " + key); 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 310bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Integer: " + value, e); 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a Short. 318bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 3201276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * @return the Short value, or {@code null} if the value is missing or cannot be converted 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Short getAsShort(String key) { 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return value != null ? ((Number) value).shortValue() : null; 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Short.valueOf(value.toString()); 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (NumberFormatException e2) { 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Cannot parse Short value for " + value + " at key " + key); 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 335bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Short: " + value, e); 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a Byte. 343bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 3451276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * @return the Byte value, or {@code null} if the value is missing or cannot be converted 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Byte getAsByte(String key) { 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return value != null ? ((Number) value).byteValue() : null; 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Byte.valueOf(value.toString()); 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (NumberFormatException e2) { 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Cannot parse Byte value for " + value + " at key " + key); 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 360bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Byte: " + value, e); 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a Double. 368bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 3701276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * @return the Double value, or {@code null} if the value is missing or cannot be converted 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Double getAsDouble(String key) { 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return value != null ? ((Number) value).doubleValue() : null; 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Double.valueOf(value.toString()); 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (NumberFormatException e2) { 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Cannot parse Double value for " + value + " at key " + key); 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 385bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Double: " + value, e); 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a Float. 393bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 3951276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * @return the Float value, or {@code null} if the value is missing or cannot be converted 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Float getAsFloat(String key) { 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return value != null ? ((Number) value).floatValue() : null; 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Float.valueOf(value.toString()); 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (NumberFormatException e2) { 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Cannot parse Float value for " + value + " at key " + key); 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 410bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Float: " + value, e); 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a Boolean. 418bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 4201276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * @return the Boolean value, or {@code null} if the value is missing or cannot be converted 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Boolean getAsBoolean(String key) { 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (Boolean) value; 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 428794cf190aa38dffdad9e82fc86dbd94940b175b1Michael Wright // Note that we also check against 1 here because SQLite's internal representation 429794cf190aa38dffdad9e82fc86dbd94940b175b1Michael Wright // for booleans is an integer with a value of 0 or 1. Without this check, boolean 430794cf190aa38dffdad9e82fc86dbd94940b175b1Michael Wright // values obtained via DatabaseUtils#cursorRowToContentValues will always return 431794cf190aa38dffdad9e82fc86dbd94940b175b1Michael Wright // false. 432794cf190aa38dffdad9e82fc86dbd94940b175b1Michael Wright return Boolean.valueOf(value.toString()) || "1".equals(value); 433d208c3a68b96cf0c1dde5cdeab0e8464b9e52018Jeff Hamilton } else if (value instanceof Number) { 434d208c3a68b96cf0c1dde5cdeab0e8464b9e52018Jeff Hamilton return ((Number) value).intValue() != 0; 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 436bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Boolean: " + value, e); 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value that is a byte array. Note that this method will not convert 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any other types to byte arrays. 445bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 4471276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * @return the {@code byte[]} value, or {@code null} is the value is missing or not a 4481276b5f29ed6f889e9691cf296fd9911958895c1Steve Pomeroy * {@code byte[]} 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte[] getAsByteArray(String key) { 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof byte[]) { 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (byte[]) value; 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns a set of all of the keys and values 461bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a set of all of the keys and values 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Set<Map.Entry<String, Object>> valueSet() { 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mValues.entrySet(); 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 467bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana 468532abb65308725c649fe94ba485abc24ece05b2eVasu Nori /** 469532abb65308725c649fe94ba485abc24ece05b2eVasu Nori * Returns a set of all of the keys 470532abb65308725c649fe94ba485abc24ece05b2eVasu Nori * 471532abb65308725c649fe94ba485abc24ece05b2eVasu Nori * @return a set of all of the keys 472532abb65308725c649fe94ba485abc24ece05b2eVasu Nori */ 473532abb65308725c649fe94ba485abc24ece05b2eVasu Nori public Set<String> keySet() { 474532abb65308725c649fe94ba485abc24ece05b2eVasu Nori return mValues.keySet(); 475532abb65308725c649fe94ba485abc24ece05b2eVasu Nori } 476532abb65308725c649fe94ba485abc24ece05b2eVasu Nori 4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Parcelable.Creator<ContentValues> CREATOR = 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Parcelable.Creator<ContentValues>() { 4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings({"deprecation", "unchecked"}) 4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContentValues createFromParcel(Parcel in) { 4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // TODO - what ClassLoader should be passed to readHashMap? 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project HashMap<String, Object> values = in.readHashMap(null); 4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ContentValues(values); 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContentValues[] newArray(int size) { 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ContentValues[size]; 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("deprecation") 4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel parcel, int flags) { 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeMap(mValues); 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unsupported, here until we get proper bulk insert APIs. 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putStringArrayList(String key, ArrayList<String> value) { 5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.put(key, value); 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unsupported, here until we get proper bulk insert APIs. 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("unchecked") 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ArrayList<String> getStringArrayList(String key) { 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (ArrayList<String>) mValues.get(key); 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 519f924a513da2ec1989a06dc16d007c0eca422ea67Jeff Hamilton /** 520f924a513da2ec1989a06dc16d007c0eca422ea67Jeff Hamilton * Returns a string containing a concise, human-readable description of this object. 521f924a513da2ec1989a06dc16d007c0eca422ea67Jeff Hamilton * @return a printable representation of this object. 522f924a513da2ec1989a06dc16d007c0eca422ea67Jeff Hamilton */ 5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String toString() { 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project StringBuilder sb = new StringBuilder(); 5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (String name : mValues.keySet()) { 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String value = getAsString(name); 5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (sb.length() > 0) sb.append(" "); 5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(name + "=" + value); 5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return sb.toString(); 5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 534