/*
* Generated by Robotoworks Mechanoid
*/
package com.robotoworks.example.recipes.content;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.net.Uri;
import com.robotoworks.example.recipes.content.RecipesDBContract.Recipes;
import com.robotoworks.example.recipes.content.RecipesDBContract.Recipes.Builder;
import com.robotoworks.mechanoid.util.Closeables;
import com.robotoworks.mechanoid.db.ActiveRecord;
import com.robotoworks.mechanoid.db.ActiveRecordFactory;
import com.robotoworks.mechanoid.Mechanoid;
import com.robotoworks.mechanoid.db.AbstractValuesBuilder;
public class RecipesRecord extends ActiveRecord implements Parcelable {
private static ActiveRecordFactory<RecipesRecord> sFactory = new ActiveRecordFactory<RecipesRecord>() {
@Override
public RecipesRecord create(Cursor c) {
return fromCursor(c);
}
@Override
public String[] getProjection() {
return PROJECTION;
}
@Override
public Uri getContentUri() {
return Recipes.CONTENT_URI;
}
};
public static ActiveRecordFactory<RecipesRecord> getFactory() {
return sFactory;
}
public static final Parcelable.Creator<RecipesRecord> CREATOR
= new Parcelable.Creator<RecipesRecord>() {
public RecipesRecord createFromParcel(Parcel in) {
return new RecipesRecord(in);
}
public RecipesRecord[] newArray(int size) {
return new RecipesRecord[size];
}
};
public static String[] PROJECTION = {
Recipes._ID,
Recipes.TITLE,
Recipes.DESCRIPTION,
Recipes.AUTHOR_ID
};
public interface Indices {
int _ID = 0;
int TITLE = 1;
int DESCRIPTION = 2;
int AUTHOR_ID = 3;
}
private String mTitle;
private boolean mTitleDirty;
private String mDescription;
private boolean mDescriptionDirty;
private long mAuthorId;
private boolean mAuthorIdDirty;
@Override
protected String[] _getProjection() {
return PROJECTION;
}
public void setTitle(String title) {
mTitle = title;
mTitleDirty = true;
}
public String getTitle() {
return mTitle;
}
public void setDescription(String description) {
mDescription = description;
mDescriptionDirty = true;
}
public String getDescription() {
return mDescription;
}
public void setAuthorId(long authorId) {
mAuthorId = authorId;
mAuthorIdDirty = true;
}
public long getAuthorId() {
return mAuthorId;
}
public RecipesRecord() {
super(Recipes.CONTENT_URI);
}
private RecipesRecord(Parcel in) {
super(Recipes.CONTENT_URI);
setId(in.readLong());
mTitle = in.readString();
mDescription = in.readString();
mAuthorId = in.readLong();
boolean[] dirtyFlags = new boolean[3];
in.readBooleanArray(dirtyFlags);
mTitleDirty = dirtyFlags[0];
mDescriptionDirty = dirtyFlags[1];
mAuthorIdDirty = dirtyFlags[2];
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeLong(getId());
dest.writeString(mTitle);
dest.writeString(mDescription);
dest.writeLong(mAuthorId);
dest.writeBooleanArray(new boolean[] {
mTitleDirty,
mDescriptionDirty,
mAuthorIdDirty
});
}
@Override
protected AbstractValuesBuilder createBuilder() {
Builder builder = Recipes.newBuilder();
if(mTitleDirty) {
builder.setTitle(mTitle);
}
if(mDescriptionDirty) {
builder.setDescription(mDescription);
}
if(mAuthorIdDirty) {
builder.setAuthorId(mAuthorId);
}
return builder;
}
@Override
public void makeDirty(boolean dirty){
mTitleDirty = dirty;
mDescriptionDirty = dirty;
mAuthorIdDirty = dirty;
}
@Override
protected void setPropertiesFromCursor(Cursor c) {
setId(c.getLong(Indices._ID));
setTitle(c.getString(Indices.TITLE));
setDescription(c.getString(Indices.DESCRIPTION));
setAuthorId(c.getLong(Indices.AUTHOR_ID));
}
public static RecipesRecord fromCursor(Cursor c) {
RecipesRecord item = new RecipesRecord();
item.setPropertiesFromCursor(c);
item.makeDirty(false);
return item;
}
public static RecipesRecord fromBundle(Bundle bundle, String key) {
bundle.setClassLoader(RecipesRecord.class.getClassLoader());
return bundle.getParcelable(key);
}
public static RecipesRecord get(long id) {
Cursor c = null;
ContentResolver resolver = Mechanoid.getContentResolver();
try {
c = resolver.query(Recipes.CONTENT_URI.buildUpon()
.appendPath(String.valueOf(id)).build(), PROJECTION, null, null, null);
if(!c.moveToFirst()) {
return null;
}
return fromCursor(c);
} finally {
Closeables.closeSilently(c);
}
}
}