1fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert/*
2fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Copyright (C) 2010 The Android Open Source Project
3fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert *
4fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License");
5fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * you may not use this file except in compliance with the License.
6fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * You may obtain a copy of the License at
7fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert *
8fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert *      http://www.apache.org/licenses/LICENSE-2.0
9fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert *
10fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Unless required by applicable law or agreed to in writing, software
11fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS,
12fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * See the License for the specific language governing permissions and
14fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * limitations under the License.
15fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert */
16fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
17fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringertpackage com.android.quicksearchbox;
18fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
19fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringertimport android.database.DataSetObserver;
20fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
215229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwoodimport java.util.Collection;
225229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood
23fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert/**
24fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * A suggestion cursor that delegates all methods to another SuggestionCursor.
25fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert */
26fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringertpublic class SuggestionCursorWrapper extends AbstractSuggestionCursorWrapper {
27fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
28fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    private final SuggestionCursor mCursor;
29fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
30fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public SuggestionCursorWrapper(String userQuery, SuggestionCursor cursor) {
31fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        super(userQuery);
32fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        mCursor = cursor;
33fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
34fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
35fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public void close() {
36fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        if (mCursor != null) {
37fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert            mCursor.close();
38fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        }
39fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
40fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
41fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public int getCount() {
42fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return mCursor == null ? 0 : mCursor.getCount();
43fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
44fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
45fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public int getPosition() {
46fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return mCursor == null ? 0 : mCursor.getPosition();
47fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
48fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
49fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public void moveTo(int pos) {
50fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        if (mCursor != null) {
51fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert            mCursor.moveTo(pos);
52fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        }
53fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
54fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
5587e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert    public boolean moveToNext() {
5687e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert        if (mCursor != null) {
5787e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert            return mCursor.moveToNext();
5887e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert        } else {
5987e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert            return false;
6087e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert        }
6187e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert    }
6287e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert
63fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public void registerDataSetObserver(DataSetObserver observer) {
64fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        if (mCursor != null) {
65fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert            mCursor.registerDataSetObserver(observer);
66fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        }
67fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
68fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
69fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public void unregisterDataSetObserver(DataSetObserver observer) {
70fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        if (mCursor != null) {
71fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert            mCursor.unregisterDataSetObserver(observer);
72fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        }
73fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
74fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
75fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    @Override
76fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    protected SuggestionCursor current() {
77fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return mCursor;
78fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
79fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
805229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood    public Collection<String> getExtraColumns() {
815229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood        return mCursor.getExtraColumns();
825229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood    }
835229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood
84fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert}
85