16a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana/* 26a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * Copyright (C) 2009 The Android Open Source Project 36a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * 46a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * Licensed under the Apache License, Version 2.0 (the "License"); 56a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * you may not use this file except in compliance with the License. 66a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * You may obtain a copy of the License at 76a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * 86a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * http://www.apache.org/licenses/LICENSE-2.0 96a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * 106a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * Unless required by applicable law or agreed to in writing, software 116a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * distributed under the License is distributed on an "AS IS" BASIS, 126a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * See the License for the specific language governing permissions and 146a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana * limitations under the License. 156a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana */ 166a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana 176a8d5332f00bdfade6674b312e7166940aa28348Fred Quintanapackage android.content; 186a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana 196a8d5332f00bdfade6674b312e7166940aa28348Fred Quintanaimport android.os.Parcelable; 2003d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintanaimport android.os.Parcel; 2103d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintanaimport android.net.Uri; 2203d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintanaimport android.util.Log; 2303d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana 2403d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintanaimport java.util.ArrayList; 256a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana 266a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana/** 272ec6c5699181316e5a5c2cd293c006ac4a8bb101Fred Quintana * A representation of a item using ContentValues. It contains one top level ContentValue 282ec6c5699181316e5a5c2cd293c006ac4a8bb101Fred Quintana * plus a collection of Uri, ContentValues tuples as subvalues. One example of its use 292ec6c5699181316e5a5c2cd293c006ac4a8bb101Fred Quintana * is in Contacts, where the top level ContentValue contains the columns from the RawContacts 302ec6c5699181316e5a5c2cd293c006ac4a8bb101Fred Quintana * table and the subvalues contain a ContentValues object for each row from the Data table that 312ec6c5699181316e5a5c2cd293c006ac4a8bb101Fred Quintana * corresponds to that RawContact. The uri refers to the Data table uri for each row. 326a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana */ 332ec6c5699181316e5a5c2cd293c006ac4a8bb101Fred Quintanapublic final class Entity { 3403d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana final private ContentValues mValues; 3503d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana final private ArrayList<NamedContentValues> mSubValues; 3603d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana 3703d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana public Entity(ContentValues values) { 3803d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana mValues = values; 3903d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana mSubValues = new ArrayList<NamedContentValues>(); 4003d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana } 4103d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana 4203d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana public ContentValues getEntityValues() { 4303d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana return mValues; 4403d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana } 4503d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana 4603d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana public ArrayList<NamedContentValues> getSubValues() { 4703d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana return mSubValues; 4803d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana } 4903d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana 5003d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana public void addSubValue(Uri uri, ContentValues values) { 5103d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana mSubValues.add(new Entity.NamedContentValues(uri, values)); 5203d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana } 5303d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana 5403d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana public static class NamedContentValues { 5503d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana public final Uri uri; 5603d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana public final ContentValues values; 5703d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana 5803d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana public NamedContentValues(Uri uri, ContentValues values) { 5903d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana this.uri = uri; 6003d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana this.values = values; 6103d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana } 6203d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana } 6303d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana 6403d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana public String toString() { 6503d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana final StringBuilder sb = new StringBuilder(); 6603d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana sb.append("Entity: ").append(getEntityValues()); 6703d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana for (Entity.NamedContentValues namedValue : getSubValues()) { 6803d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana sb.append("\n ").append(namedValue.uri); 6903d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana sb.append("\n -> ").append(namedValue.values); 7003d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana } 7103d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana return sb.toString(); 7203d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana } 736a8d5332f00bdfade6674b312e7166940aa28348Fred Quintana} 74