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 19ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintanaimport android.net.Uri; 208943737692169f564cd34a9c8d471f3a5d438712Fred Quintanaimport android.os.Parcelable; 218943737692169f564cd34a9c8d471f3a5d438712Fred Quintanaimport android.os.Parcel; 22ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana 23ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana/** 24ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * Contains the result of the application of a {@link ContentProviderOperation}. It is guaranteed 25ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana * to have exactly one of {@link #uri} or {@link #count} set. 26ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana */ 278943737692169f564cd34a9c8d471f3a5d438712Fred Quintanapublic class ContentProviderResult implements Parcelable { 28ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana public final Uri uri; 29ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana public final Integer count; 30ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana 31ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana public ContentProviderResult(Uri uri) { 32ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana if (uri == null) throw new IllegalArgumentException("uri must not be null"); 33ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana this.uri = uri; 34ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana this.count = null; 35ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana } 36ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana 37ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana public ContentProviderResult(int count) { 38ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana this.count = count; 39ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana this.uri = null; 40ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana } 418943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 428943737692169f564cd34a9c8d471f3a5d438712Fred Quintana public ContentProviderResult(Parcel source) { 438943737692169f564cd34a9c8d471f3a5d438712Fred Quintana int type = source.readInt(); 448943737692169f564cd34a9c8d471f3a5d438712Fred Quintana if (type == 1) { 458943737692169f564cd34a9c8d471f3a5d438712Fred Quintana count = source.readInt(); 468943737692169f564cd34a9c8d471f3a5d438712Fred Quintana uri = null; 478943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } else { 488943737692169f564cd34a9c8d471f3a5d438712Fred Quintana count = null; 498943737692169f564cd34a9c8d471f3a5d438712Fred Quintana uri = Uri.CREATOR.createFromParcel(source); 508943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 518943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 528943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 538943737692169f564cd34a9c8d471f3a5d438712Fred Quintana public void writeToParcel(Parcel dest, int flags) { 548943737692169f564cd34a9c8d471f3a5d438712Fred Quintana if (uri == null) { 558943737692169f564cd34a9c8d471f3a5d438712Fred Quintana dest.writeInt(1); 568943737692169f564cd34a9c8d471f3a5d438712Fred Quintana dest.writeInt(count); 578943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } else { 588943737692169f564cd34a9c8d471f3a5d438712Fred Quintana dest.writeInt(2); 598943737692169f564cd34a9c8d471f3a5d438712Fred Quintana uri.writeToParcel(dest, 0); 608943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 618943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 628943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 638943737692169f564cd34a9c8d471f3a5d438712Fred Quintana public int describeContents() { 648943737692169f564cd34a9c8d471f3a5d438712Fred Quintana return 0; 658943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 668943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 678943737692169f564cd34a9c8d471f3a5d438712Fred Quintana public static final Creator<ContentProviderResult> CREATOR = 688943737692169f564cd34a9c8d471f3a5d438712Fred Quintana new Creator<ContentProviderResult>() { 698943737692169f564cd34a9c8d471f3a5d438712Fred Quintana public ContentProviderResult createFromParcel(Parcel source) { 708943737692169f564cd34a9c8d471f3a5d438712Fred Quintana return new ContentProviderResult(source); 718943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 728943737692169f564cd34a9c8d471f3a5d438712Fred Quintana 738943737692169f564cd34a9c8d471f3a5d438712Fred Quintana public ContentProviderResult[] newArray(int size) { 748943737692169f564cd34a9c8d471f3a5d438712Fred Quintana return new ContentProviderResult[size]; 758943737692169f564cd34a9c8d471f3a5d438712Fred Quintana } 768943737692169f564cd34a9c8d471f3a5d438712Fred Quintana }; 7703d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana 7803d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana public String toString() { 7903d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana if (uri != null) { 8003d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana return "ContentProviderResult(uri=" + uri.toString() + ")"; 8103d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana } 8203d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana return "ContentProviderResult(count=" + count + ")"; 8303d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana } 84ce31b2361db630cf1347fa42dd77e610a4eeb96dFred Quintana}