1b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro/* 2b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * Copyright (C) 2011 The Android Open Source Project 3b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * 4b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * Licensed under the Apache License, Version 2.0 (the "License"); 5b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * you may not use this file except in compliance with the License. 6b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * You may obtain a copy of the License at 7b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * 8b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * http://www.apache.org/licenses/LICENSE-2.0 9b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * 10b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * Unless required by applicable law or agreed to in writing, software 11b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * distributed under the License is distributed on an "AS IS" BASIS, 12b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * See the License for the specific language governing permissions and 14b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * limitations under the License 15b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro */ 16b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoropackage com.android.providers.contacts; 17b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro 18b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoroimport android.database.AbstractWindowedCursor; 19b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoroimport android.database.Cursor; 20b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoroimport android.database.CursorWindow; 21b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoroimport android.database.DatabaseUtils; 22b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro 23b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro/** 24b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro * Implementation of an in-memory cursor backed by a cursor window. 25b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro */ 26b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoropublic class MemoryCursor extends AbstractWindowedCursor { 27b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro 28b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro private final String[] mColumnNames; 29b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro 30b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro public MemoryCursor(String name, String[] columnNames) { 31b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro setWindow(new CursorWindow(name)); 32b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro mColumnNames = columnNames; 33b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro } 34b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro 35b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro public void fillFromCursor(Cursor cursor) { 36b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro DatabaseUtils.cursorFillWindow(cursor, 0, getWindow()); 37b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro } 38b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro 39b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro @Override 40b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro public int getCount() { 41b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro return getWindow().getNumRows(); 42b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro } 43b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro 44b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro @Override 45b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro public String[] getColumnNames() { 46b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro return mColumnNames; 47b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro } 48b6b22df3a64a80531d58f9cd60f2872fc2af92d1Dave Santoro} 49