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 /** 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Remove a single value. 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the name of the value to remove 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void remove(String key) { 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.remove(key); 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Removes all values. 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void clear() { 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.clear(); 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns true if this object has the named value. 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to check for 226bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * @return {@code true} if the value is present, {@code false} otherwise 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean containsKey(String key) { 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mValues.containsKey(key); 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value. Valid value types are {@link String}, {@link Boolean}, and 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Number} implementations. 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the data for the value 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Object get(String key) { 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mValues.get(key); 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a String. 245bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the String for the value 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getAsString(String key) { 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 2511c4027b68d5938795cc536c1d45e8d942ea537a4Daniel Lehmann return value != null ? value.toString() : null; 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a Long. 256bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the Long value, or null if the value is missing or cannot be converted 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Long getAsLong(String key) { 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return value != null ? ((Number) value).longValue() : null; 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Long.valueOf(value.toString()); 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (NumberFormatException e2) { 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Cannot parse Long value for " + value + " at key " + key); 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 273bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Long: " + value, e); 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to an Integer. 281bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the Integer value, or null if the value is missing or cannot be converted 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Integer getAsInteger(String key) { 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return value != null ? ((Number) value).intValue() : null; 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Integer.valueOf(value.toString()); 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (NumberFormatException e2) { 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Cannot parse Integer value for " + value + " at key " + key); 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 298bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Integer: " + value, e); 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a Short. 306bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the Short value, or null if the value is missing or cannot be converted 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Short getAsShort(String key) { 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return value != null ? ((Number) value).shortValue() : null; 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Short.valueOf(value.toString()); 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (NumberFormatException e2) { 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Cannot parse Short value for " + value + " at key " + key); 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 323bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Short: " + value, e); 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a Byte. 331bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the Byte value, or null if the value is missing or cannot be converted 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Byte getAsByte(String key) { 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return value != null ? ((Number) value).byteValue() : null; 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Byte.valueOf(value.toString()); 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (NumberFormatException e2) { 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Cannot parse Byte value for " + value + " at key " + key); 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 348bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Byte: " + value, e); 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a Double. 356bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the Double value, or null if the value is missing or cannot be converted 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Double getAsDouble(String key) { 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return value != null ? ((Number) value).doubleValue() : null; 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Double.valueOf(value.toString()); 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (NumberFormatException e2) { 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Cannot parse Double value for " + value + " at key " + key); 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 373bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Double: " + value, e); 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a Float. 381bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the Float value, or null if the value is missing or cannot be converted 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Float getAsFloat(String key) { 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return value != null ? ((Number) value).floatValue() : null; 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Float.valueOf(value.toString()); 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (NumberFormatException e2) { 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Log.e(TAG, "Cannot parse Float value for " + value + " at key " + key); 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 398bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Float: " + value, e); 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value and converts it to a Boolean. 406bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the Boolean value, or null if the value is missing or cannot be converted 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Boolean getAsBoolean(String key) { 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (Boolean) value; 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof CharSequence) { 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return Boolean.valueOf(value.toString()); 417d208c3a68b96cf0c1dde5cdeab0e8464b9e52018Jeff Hamilton } else if (value instanceof Number) { 418d208c3a68b96cf0c1dde5cdeab0e8464b9e52018Jeff Hamilton return ((Number) value).intValue() != 0; 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 420bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana Log.e(TAG, "Cannot cast value for " + key + " to a Boolean: " + value, e); 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a value that is a byte array. Note that this method will not convert 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any other types to byte arrays. 429bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key the value to get 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the byte[] value, or null is the value is missing or not a byte[] 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte[] getAsByteArray(String key) { 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object value = mValues.get(key); 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (value instanceof byte[]) { 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (byte[]) value; 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 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 * Returns a set of all of the keys and values 444bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana * 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a set of all of the keys and values 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Set<Map.Entry<String, Object>> valueSet() { 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mValues.entrySet(); 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 450bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana 451532abb65308725c649fe94ba485abc24ece05b2eVasu Nori /** 452532abb65308725c649fe94ba485abc24ece05b2eVasu Nori * Returns a set of all of the keys 453532abb65308725c649fe94ba485abc24ece05b2eVasu Nori * 454532abb65308725c649fe94ba485abc24ece05b2eVasu Nori * @return a set of all of the keys 455532abb65308725c649fe94ba485abc24ece05b2eVasu Nori */ 456532abb65308725c649fe94ba485abc24ece05b2eVasu Nori public Set<String> keySet() { 457532abb65308725c649fe94ba485abc24ece05b2eVasu Nori return mValues.keySet(); 458532abb65308725c649fe94ba485abc24ece05b2eVasu Nori } 459532abb65308725c649fe94ba485abc24ece05b2eVasu Nori 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Parcelable.Creator<ContentValues> CREATOR = 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Parcelable.Creator<ContentValues>() { 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings({"deprecation", "unchecked"}) 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContentValues createFromParcel(Parcel in) { 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // TODO - what ClassLoader should be passed to readHashMap? 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project HashMap<String, Object> values = in.readHashMap(null); 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ContentValues(values); 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContentValues[] newArray(int size) { 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ContentValues[size]; 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("deprecation") 4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel parcel, int flags) { 4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeMap(mValues); 4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unsupported, here until we get proper bulk insert APIs. 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putStringArrayList(String key, ArrayList<String> value) { 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues.put(key, value); 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unsupported, here until we get proper bulk insert APIs. 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("unchecked") 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ArrayList<String> getStringArrayList(String key) { 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (ArrayList<String>) mValues.get(key); 5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 502f924a513da2ec1989a06dc16d007c0eca422ea67Jeff Hamilton /** 503f924a513da2ec1989a06dc16d007c0eca422ea67Jeff Hamilton * Returns a string containing a concise, human-readable description of this object. 504f924a513da2ec1989a06dc16d007c0eca422ea67Jeff Hamilton * @return a printable representation of this object. 505f924a513da2ec1989a06dc16d007c0eca422ea67Jeff Hamilton */ 5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String toString() { 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project StringBuilder sb = new StringBuilder(); 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (String name : mValues.keySet()) { 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String value = getAsString(name); 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (sb.length() > 0) sb.append(" "); 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(name + "=" + value); 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return sb.toString(); 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 517