19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 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.database; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ContentResolver; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2303bd302aebbb77f4f95789a269c8a5463ac5a840Jeff Brownimport java.io.Closeable; 2403bd302aebbb77f4f95789a269c8a5463ac5a840Jeff Brown 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This interface provides random read-write access to the result set returned 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * by a database query. 28511cd35fcc0b8ab048f284a6af374de8ccc69865Jeff Brown * <p> 29f3ca9a5c7e87319c934b5815566054d2e5c2085fJeff Hamilton * Cursor implementations are not required to be synchronized so code using a Cursor from multiple 30f3ca9a5c7e87319c934b5815566054d2e5c2085fJeff Hamilton * threads should perform its own synchronization when using the Cursor. 31511cd35fcc0b8ab048f284a6af374de8ccc69865Jeff Brown * </p><p> 32511cd35fcc0b8ab048f284a6af374de8ccc69865Jeff Brown * Implementations should subclass {@link AbstractCursor}. 33511cd35fcc0b8ab048f284a6af374de8ccc69865Jeff Brown * </p> 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3503bd302aebbb77f4f95789a269c8a5463ac5a840Jeff Brownpublic interface Cursor extends Closeable { 368b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /* 378b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * Values returned by {@link #getType(int)}. 388b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * These should be consistent with the corresponding types defined in CursorWindow.h 398b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori */ 408b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column is null */ 418b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_NULL = 0; 428b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 438b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column type is integer */ 448b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_INTEGER = 1; 458b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 468b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column type is float */ 478b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_FLOAT = 2; 488b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 498b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column type is string */ 508b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_STRING = 3; 518b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 528b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column type is blob */ 538b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_BLOB = 4; 548b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the numbers of rows in the cursor. 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the number of rows in the cursor. 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getCount(); 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the current position of the cursor in the row set. 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The value is zero-based. When the row set is first returned the cursor 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will be at positon -1, which is before the first row. After the 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * last row is returned another call to next() will leave the cursor past 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the last entry, at a position of count(). 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the current cursor position. 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getPosition(); 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor by a relative amount, forward or backward, from the 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * current position. Positive offsets move forwards, negative offsets move 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * backwards. If the final position is outside of the bounds of the result 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * set then the resultant position will be pinned to -1 or count() depending 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * on whether the value is off the front or end of the set, respectively. 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return true if the requested destination was 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * reachable, otherwise, it returns false. For example, if the cursor is at 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * currently on the second entry in the result set and move(-5) is called, 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the position will be pinned at -1, and false will be returned. 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param offset the offset to be applied from the current position. 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the requested move fully succeeded. 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean move(int offset); 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to an absolute position. The valid 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * range of values is -1 <= position <= count. 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return true if the request destination was reachable, 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * otherwise, it returns false. 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param position the zero-based position to move to. 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the requested move fully succeeded. 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToPosition(int position); 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to the first row. 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return false if the cursor is empty. 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the move succeeded. 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToFirst(); 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to the last row. 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return false if the cursor is empty. 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the move succeeded. 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToLast(); 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to the next row. 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return false if the cursor is already past the 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * last entry in the result set. 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the move succeeded. 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToNext(); 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to the previous row. 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return false if the cursor is already before the 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * first entry in the result set. 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the move succeeded. 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToPrevious(); 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the cursor is pointing to the first row. 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the cursor is pointing at the first entry. 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isFirst(); 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the cursor is pointing to the last row. 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the cursor is pointing at the last entry. 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isLast(); 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the cursor is pointing to the position before the first 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * row. 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the cursor is before the first result. 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isBeforeFirst(); 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the cursor is pointing to the position after the last 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * row. 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the cursor is after the last result. 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isAfterLast(); 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the zero-based index for the given column name, or -1 if the column doesn't exist. 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If you expect the column to exist use {@link #getColumnIndexOrThrow(String)} instead, which 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will make the error more clear. 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnName the name of the target column. 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the zero-based column index for the given column name, or -1 if 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the column name does not exist. 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getColumnIndexOrThrow(String) 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getColumnIndex(String columnName); 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the zero-based index for the given column name, or throws 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link IllegalArgumentException} if the column doesn't exist. If you're not sure if 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a column will exist or not use {@link #getColumnIndex(String)} and check for -1, which 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is more efficient than catching the exceptions. 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnName the name of the target column. 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the zero-based column index for the given column name 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getColumnIndex(String) 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IllegalArgumentException if the column does not exist 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getColumnIndexOrThrow(String columnName) throws IllegalArgumentException; 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the column name at the given zero-based column index. 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the column name for the given column index. 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String getColumnName(int columnIndex); 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns a string array holding the names of all of the columns in the 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * result set in the order in which they were listed in the result. 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the names of the columns returned in this query. 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String[] getColumnNames(); 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return total number of columns 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return number of columns 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getColumnCount(); 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a byte array. 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 22065068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 22165068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null or the column type is not a blob type is 22265068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * implementation-defined. 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a byte array. 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte[] getBlob(int columnIndex); 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a String. 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 23265068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 23365068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null or the column type is not a string type is 23465068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * implementation-defined. 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a String. 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String getString(int columnIndex); 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieves the requested column text and stores it in the buffer provided. 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If the buffer size is not sufficient, a new char buffer will be allocated 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and assigned to CharArrayBuffer.data 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if the target column is null, return buffer 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param buffer the buffer to copy the text into. 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer); 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a short. 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 25465068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 25565068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null, the column type is not an integral type, or the 25665068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * integer value is outside the range [<code>Short.MIN_VALUE</code>, 25765068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <code>Short.MAX_VALUE</code>] is implementation-defined. 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a short. 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project short getShort(int columnIndex); 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as an int. 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 26765068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 26865068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null, the column type is not an integral type, or the 26965068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * integer value is outside the range [<code>Integer.MIN_VALUE</code>, 27065068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <code>Integer.MAX_VALUE</code>] is implementation-defined. 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as an int. 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getInt(int columnIndex); 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a long. 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 28065068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 28165068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null, the column type is not an integral type, or the 28265068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * integer value is outside the range [<code>Long.MIN_VALUE</code>, 28365068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <code>Long.MAX_VALUE</code>] is implementation-defined. 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a long. 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project long getLong(int columnIndex); 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a float. 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 29365068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 29465068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null, the column type is not a floating-point type, or the 29565068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * floating-point value is not representable as a <code>float</code> value is 29665068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * implementation-defined. 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a float. 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float getFloat(int columnIndex); 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a double. 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 30665068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 30765068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null, the column type is not a floating-point type, or the 30865068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * floating-point value is not representable as a <code>double</code> value is 30965068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * implementation-defined. 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a double. 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project double getDouble(int columnIndex); 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3178b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * Returns data type of the given column's value. 3188b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * The preferred type of the column is returned but the data may be converted to other types 3198b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * as documented in the get-type methods such as {@link #getInt(int)}, {@link #getFloat(int)} 3208b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * etc. 3218b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori *<p> 3228b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * Returned column types are 3238b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <ul> 3248b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_NULL}</li> 3258b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_INTEGER}</li> 3268b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_FLOAT}</li> 3278b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_STRING}</li> 3288b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_BLOB}</li> 3298b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori *</ul> 3308b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori *</p> 3318b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * 3328b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * @param columnIndex the zero-based index of the target column. 3338b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * @return column value type 3348b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori */ 3358b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori int getType(int columnIndex); 3368b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 3378b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns <code>true</code> if the value in the indicated column is null. 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the column value is null. 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isNull(int columnIndex); 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Deactivates the Cursor, making all calls on it fail until {@link #requery} is called. 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inactive Cursors use fewer resources than active Cursors. 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Calling {@link #requery} will make the cursor active again. 34981e9276a479fd3a5ccc3129505c0fb018941934bDianne Hackborn * @deprecated Since {@link #requery()} is deprecated, so too is this. 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void deactivate(); 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Performs the query that created the cursor again, refreshing its 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * contents. This may be done at any time, including after a call to {@link 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * #deactivate}. 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 35820f549fd2f40db524242c9038d7d63356adf95fcVasu Nori * Since this method could execute a query on the database and potentially take 35920f549fd2f40db524242c9038d7d63356adf95fcVasu Nori * a while, it could cause ANR if it is called on Main (UI) thread. 36020f549fd2f40db524242c9038d7d63356adf95fcVasu Nori * A warning is printed if this method is being executed on Main thread. 36120f549fd2f40db524242c9038d7d63356adf95fcVasu Nori * 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the requery succeeded, false if not, in which case the 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * cursor becomes invalid. 364820e9b6b9cea6cce8115339dd774cdc273c4d6daVasu Nori * @deprecated Don't use this. Just request a new cursor, so you can do this 365820e9b6b9cea6cce8115339dd774cdc273c4d6daVasu Nori * asynchronously and update your list view once the new cursor comes back. 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 367820e9b6b9cea6cce8115339dd774cdc273c4d6daVasu Nori @Deprecated 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean requery(); 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Closes the Cursor, releasing all of its resources and making it completely invalid. 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unlike {@link #deactivate()} a call to {@link #requery()} will not make the Cursor valid 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * again. 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void close(); 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * return true if the cursor is closed 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the cursor is closed. 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isClosed(); 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Register an observer that is called when changes happen to the content backing this cursor. 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Typically the data set won't change until {@link #requery()} is called. 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer the object that gets notified when the content backing the cursor changes. 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #unregisterContentObserver(ContentObserver) 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void registerContentObserver(ContentObserver observer); 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unregister an observer that has previously been registered with this 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * cursor via {@link #registerContentObserver}. 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer the object to unregister. 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerContentObserver(ContentObserver) 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void unregisterContentObserver(ContentObserver observer); 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Register an observer that is called when changes happen to the contents 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * of the this cursors data set, for example, when the data set is changed via 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #requery()}, {@link #deactivate()}, or {@link #close()}. 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer the object that gets notified when the cursors data set changes. 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #unregisterDataSetObserver(DataSetObserver) 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void registerDataSetObserver(DataSetObserver observer); 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unregister an observer that has previously been registered with this 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * cursor via {@link #registerContentObserver}. 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer the object to unregister. 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerDataSetObserver(DataSetObserver) 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void unregisterDataSetObserver(DataSetObserver observer); 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Register to watch a content URI for changes. This can be the URI of a specific data row (for 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * example, "content://my_provider_type/23"), or a a generic URI for a content type. 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param cr The content resolver from the caller's context. The listener attached to 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this resolver will be notified. 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The content URI to watch. 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setNotificationUri(ContentResolver cr, Uri uri); 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 431c87c92e079b9aff771ac0810fc86def81654dbdaDianne Hackborn * Return the URI at which notifications of changes in this Cursor's data 432c87c92e079b9aff771ac0810fc86def81654dbdaDianne Hackborn * will be delivered, as previously set by {@link #setNotificationUri}. 433c87c92e079b9aff771ac0810fc86def81654dbdaDianne Hackborn * @return Returns a URI that can be used with 434c87c92e079b9aff771ac0810fc86def81654dbdaDianne Hackborn * {@link ContentResolver#registerContentObserver(android.net.Uri, boolean, ContentObserver) 435c87c92e079b9aff771ac0810fc86def81654dbdaDianne Hackborn * ContentResolver.registerContentObserver} to find out about changes to this Cursor's 436c87c92e079b9aff771ac0810fc86def81654dbdaDianne Hackborn * data. May be null if no notification URI has been set. 437c87c92e079b9aff771ac0810fc86def81654dbdaDianne Hackborn */ 438c87c92e079b9aff771ac0810fc86def81654dbdaDianne Hackborn Uri getNotificationUri(); 439c87c92e079b9aff771ac0810fc86def81654dbdaDianne Hackborn 440c87c92e079b9aff771ac0810fc86def81654dbdaDianne Hackborn /** 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * onMove() will only be called across processes if this method returns true. 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether all cursor movement should result in a call to onMove(). 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean getWantsAllOnMoveCalls(); 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns a bundle of extra values. This is an optional way for cursors to provide out-of-band 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * metadata to their users. One use of this is for reporting on the progress of network requests 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that are required to fetch data for the cursor. 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>These values may only change when requery is called. 45265068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * @return cursor-defined values, or {@link android.os.Bundle#EMPTY Bundle.EMPTY} if there 45365068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * are no values. Never <code>null</code>. 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle getExtras(); 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This is an out-of-band way for the the user of a cursor to communicate with the cursor. The 4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * structure of each bundle is entirely defined by the cursor. 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>One use of this is to tell a cursor that it should retry its network request after it 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * reported an error. 46365068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * @param extras extra values, or {@link android.os.Bundle#EMPTY Bundle.EMPTY}. 46465068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * Never <code>null</code>. 46565068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * @return extra values, or {@link android.os.Bundle#EMPTY Bundle.EMPTY}. 46665068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * Never <code>null</code>. 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle respond(Bundle extras); 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 470