1ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana/* 2ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * Copyright (C) 2009 The Android Open Source Project 3ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * 4ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * Licensed under the Apache License, Version 2.0 (the "License"); 5ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * you may not use this file except in compliance with the License. 6ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * You may obtain a copy of the License at 7ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * 8ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * http://www.apache.org/licenses/LICENSE-2.0 9ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * 10ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * Unless required by applicable law or agreed to in writing, software 11ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * distributed under the License is distributed on an "AS IS" BASIS, 12ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * See the License for the specific language governing permissions and 14ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * limitations under the License. 15ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana */ 16ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana 17ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintanapackage android.content; 18ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana 19d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevotimport android.content.ContentProvider; 20ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintanaimport android.net.Uri; 218943737692169f564cd34a9c8d471f3a5d438712Fred Quintanaimport android.os.Parcelable; 228943737692169f564cd34a9c8d471f3a5d438712Fred Quintanaimport android.os.Parcel; 23ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana 24ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana/** 25ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * Contains the result of the application of a {@link ContentProviderOperation}. It is guaranteed 26ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * to have exactly one of {@link #uri} or {@link #count} set. 27ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana */ 288943737692169f564cd34a9c8d471f3a5d438712Fred Quintanapublic class ContentProviderResult implements Parcelable { 29ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana public final Uri uri; 30ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana public final Integer count; 31ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana 32ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana public ContentProviderResult(Uri uri) { 33ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana if (uri == null) throw new IllegalArgumentException("uri must not be null"); 34ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana this.uri = uri; 35ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana this.count = null; 36ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana } 37ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana 38ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana public ContentProviderResult(int count) { 39ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana this.count = count; 40ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana this.uri = null; 41ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana } 428943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 438943737692169f564cd34a9c8d471f3a5d438712Fred Quintana public ContentProviderResult(Parcel source) { 448943737692169f564cd34a9c8d471f3a5d438712Fred Quintana int type = source.readInt(); 458943737692169f564cd34a9c8d471f3a5d438712Fred Quintana if (type == 1) { 468943737692169f564cd34a9c8d471f3a5d438712Fred Quintana count = source.readInt(); 478943737692169f564cd34a9c8d471f3a5d438712Fred Quintana uri = null; 488943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } else { 498943737692169f564cd34a9c8d471f3a5d438712Fred Quintana count = null; 508943737692169f564cd34a9c8d471f3a5d438712Fred Quintana uri = Uri.CREATOR.createFromParcel(source); 518943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 528943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 538943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 54d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot /** @hide */ 55d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot public ContentProviderResult(ContentProviderResult cpr, int userId) { 56d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot uri = ContentProvider.maybeAddUserId(cpr.uri, userId); 57d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot count = cpr.count; 58d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot } 59d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot 608943737692169f564cd34a9c8d471f3a5d438712Fred Quintana public void writeToParcel(Parcel dest, int flags) { 618943737692169f564cd34a9c8d471f3a5d438712Fred Quintana if (uri == null) { 628943737692169f564cd34a9c8d471f3a5d438712Fred Quintana dest.writeInt(1); 638943737692169f564cd34a9c8d471f3a5d438712Fred Quintana dest.writeInt(count); 648943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } else { 658943737692169f564cd34a9c8d471f3a5d438712Fred Quintana dest.writeInt(2); 668943737692169f564cd34a9c8d471f3a5d438712Fred Quintana uri.writeToParcel(dest, 0); 678943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 688943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 698943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 708943737692169f564cd34a9c8d471f3a5d438712Fred Quintana public int describeContents() { 718943737692169f564cd34a9c8d471f3a5d438712Fred Quintana return 0; 728943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 738943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 748943737692169f564cd34a9c8d471f3a5d438712Fred Quintana public static final Creator<ContentProviderResult> CREATOR = 758943737692169f564cd34a9c8d471f3a5d438712Fred Quintana new Creator<ContentProviderResult>() { 768943737692169f564cd34a9c8d471f3a5d438712Fred Quintana public ContentProviderResult createFromParcel(Parcel source) { 778943737692169f564cd34a9c8d471f3a5d438712Fred Quintana return new ContentProviderResult(source); 788943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 798943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 808943737692169f564cd34a9c8d471f3a5d438712Fred Quintana public ContentProviderResult[] newArray(int size) { 818943737692169f564cd34a9c8d471f3a5d438712Fred Quintana return new ContentProviderResult[size]; 828943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 838943737692169f564cd34a9c8d471f3a5d438712Fred Quintana }; 8403d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana 8503d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana public String toString() { 8603d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana if (uri != null) { 8703d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana return "ContentProviderResult(uri=" + uri.toString() + ")"; 8803d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana } 8903d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana return "ContentProviderResult(count=" + count + ")"; 9003d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana } 91d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot} 92