blob: ad00effe6684c2b429e0ad91c6c908c079294386 [file] [log] [blame]
Chiao Chengedf7ab92012-09-14 12:00:21 -07001/*
2* Copyright (C) 2012 The Android Open Source Project
3*
4* Licensed under the Apache License, Version 2.0 (the "License");
5* you may not use this file except in compliance with the License.
6* You may obtain a copy of the License at
7*
8* http://www.apache.org/licenses/LICENSE-2.0
9*
10* Unless required by applicable law or agreed to in writing, software
11* distributed under the License is distributed on an "AS IS" BASIS,
12* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13* See the License for the specific language governing permissions and
14* limitations under the License
15*/
16
17package com.android.contacts.common.database;
18
19import android.database.AbstractCursor;
20import android.database.CursorIndexOutOfBoundsException;
21
22/**
23 * A cursor that is empty.
24 * <p>
25 * If you want an empty cursor, this class is better than a MatrixCursor because it has less
26 * overhead.
27 */
28final public class EmptyCursor extends AbstractCursor {
29
30 private String[] mColumns;
31
32 public EmptyCursor(String[] columns) {
33 this.mColumns = columns;
34 }
35
36 @Override
37 public int getCount() {
38 return 0;
39 }
40
41 @Override
42 public String[] getColumnNames() {
43 return mColumns;
44 }
45
46 @Override
47 public String getString(int column) {
48 throw cursorException();
49 }
50
51 @Override
52 public short getShort(int column) {
53 throw cursorException();
54 }
55
56 @Override
57 public int getInt(int column) {
58 throw cursorException();
59 }
60
61 @Override
62 public long getLong(int column) {
63 throw cursorException();
64 }
65
66 @Override
67 public float getFloat(int column) {
68 throw cursorException();
69 }
70
71 @Override
72 public double getDouble(int column) {
73 throw cursorException();
74 }
75
76 @Override
77 public boolean isNull(int column) {
78 throw cursorException();
79 }
80
81 private CursorIndexOutOfBoundsException cursorException() {
82 return new CursorIndexOutOfBoundsException("Operation not permitted on an empty cursor.");
83 }
84}