1fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown/* 2fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * Copyright (C) 2012 The Android Open Source Project 3fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * 4fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 5fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * you may not use this file except in compliance with the License. 6fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * You may obtain a copy of the License at 7fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * 8fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * http://www.apache.org/licenses/LICENSE-2.0 9fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * 10fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * Unless required by applicable law or agreed to in writing, software 11fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 12fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * See the License for the specific language governing permissions and 14fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * limitations under the License. 15fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown */ 16fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown 17fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brownpackage android.database; 18fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown 19fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brownimport android.os.Parcel; 20fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brownimport android.os.Parcelable; 21fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown 22fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown/** 23fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * Describes the properties of a {@link CursorToBulkCursorAdaptor} that are 24fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * needed to initialize its {@link BulkCursorToCursorAdaptor} counterpart on the client's end. 25fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * 26fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown * {@hide} 27fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown */ 28fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brownpublic final class BulkCursorDescriptor implements Parcelable { 29fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown public static final Parcelable.Creator<BulkCursorDescriptor> CREATOR = 30fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown new Parcelable.Creator<BulkCursorDescriptor>() { 31fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown @Override 32fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown public BulkCursorDescriptor createFromParcel(Parcel in) { 33fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown BulkCursorDescriptor d = new BulkCursorDescriptor(); 34fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown d.readFromParcel(in); 35fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown return d; 36fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown } 37fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown 38fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown @Override 39fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown public BulkCursorDescriptor[] newArray(int size) { 40fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown return new BulkCursorDescriptor[size]; 41fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown } 42fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown }; 43fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown 44fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown public IBulkCursor cursor; 45fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown public String[] columnNames; 46fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown public boolean wantsAllOnMoveCalls; 47fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown public int count; 48fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown public CursorWindow window; 49fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown 50fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown @Override 51fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown public int describeContents() { 52fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown return 0; 53fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown } 54fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown 55fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown @Override 56fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown public void writeToParcel(Parcel out, int flags) { 57fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown out.writeStrongBinder(cursor.asBinder()); 58fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown out.writeStringArray(columnNames); 59fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown out.writeInt(wantsAllOnMoveCalls ? 1 : 0); 60fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown out.writeInt(count); 61fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown if (window != null) { 62fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown out.writeInt(1); 63fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown window.writeToParcel(out, flags); 64fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown } else { 65fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown out.writeInt(0); 66fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown } 67fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown } 68fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown 69fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown public void readFromParcel(Parcel in) { 70fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown cursor = BulkCursorNative.asInterface(in.readStrongBinder()); 71fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown columnNames = in.readStringArray(); 72fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown wantsAllOnMoveCalls = in.readInt() != 0; 73fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown count = in.readInt(); 74fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown if (in.readInt() != 0) { 75fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown window = CursorWindow.CREATOR.createFromParcel(in); 76fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown } 77fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown } 78fb5a4964b8d402b39754f406dd2255035ff2148dJeff Brown} 79