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