• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
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 
17 package com.android.contacts.common.database;
18 
19 import android.database.AbstractCursor;
20 import android.database.CursorIndexOutOfBoundsException;
21 
22 /**
23  * A cursor that is empty.
24  *
25  * <p>If you want an empty cursor, this class is better than a MatrixCursor because it has less
26  * overhead.
27  */
28 public final class EmptyCursor extends AbstractCursor {
29 
30   private String[] mColumns;
31 
EmptyCursor(String[] columns)32   public EmptyCursor(String[] columns) {
33     this.mColumns = columns;
34   }
35 
36   @Override
getCount()37   public int getCount() {
38     return 0;
39   }
40 
41   @Override
getColumnNames()42   public String[] getColumnNames() {
43     return mColumns;
44   }
45 
46   @Override
getString(int column)47   public String getString(int column) {
48     throw cursorException();
49   }
50 
51   @Override
getShort(int column)52   public short getShort(int column) {
53     throw cursorException();
54   }
55 
56   @Override
getInt(int column)57   public int getInt(int column) {
58     throw cursorException();
59   }
60 
61   @Override
getLong(int column)62   public long getLong(int column) {
63     throw cursorException();
64   }
65 
66   @Override
getFloat(int column)67   public float getFloat(int column) {
68     throw cursorException();
69   }
70 
71   @Override
getDouble(int column)72   public double getDouble(int column) {
73     throw cursorException();
74   }
75 
76   @Override
isNull(int column)77   public boolean isNull(int column) {
78     throw cursorException();
79   }
80 
cursorException()81   private CursorIndexOutOfBoundsException cursorException() {
82     return new CursorIndexOutOfBoundsException("Operation not permitted on an empty cursor.");
83   }
84 }
85