/*
* Generated by Robotoworks Mechanoid
*/
package com.robotoworks.example.movies.db;
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.movies.db.MovieDBContract.Movies;
import com.robotoworks.example.movies.db.MovieDBContract.Movies.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 MoviesRecord extends ActiveRecord implements Parcelable {
private static ActiveRecordFactory<MoviesRecord> sFactory = new ActiveRecordFactory<MoviesRecord>() {
@Override
public MoviesRecord create(Cursor c) {
return fromCursor(c);
}
@Override
public String[] getProjection() {
return PROJECTION;
}
@Override
public Uri getContentUri() {
return Movies.CONTENT_URI;
}
};
public static ActiveRecordFactory<MoviesRecord> getFactory() {
return sFactory;
}
public static final Parcelable.Creator<MoviesRecord> CREATOR
= new Parcelable.Creator<MoviesRecord>() {
public MoviesRecord createFromParcel(Parcel in) {
return new MoviesRecord(in);
}
public MoviesRecord[] newArray(int size) {
return new MoviesRecord[size];
}
};
public static String[] PROJECTION = {
Movies._ID,
Movies.TITLE,
Movies.DESCRIPTION,
Movies.YEAR
};
public interface Indices {
int _ID = 0;
int TITLE = 1;
int DESCRIPTION = 2;
int YEAR = 3;
}
private String mTitle;
private boolean mTitleDirty;
private String mDescription;
private boolean mDescriptionDirty;
private long mYear;
private boolean mYearDirty;
@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 setYear(long year) {
mYear = year;
mYearDirty = true;
}
public long getYear() {
return mYear;
}
public MoviesRecord() {
super(Movies.CONTENT_URI);
}
private MoviesRecord(Parcel in) {
super(Movies.CONTENT_URI);
setId(in.readLong());
mTitle = in.readString();
mDescription = in.readString();
mYear = in.readLong();
boolean[] dirtyFlags = new boolean[3];
in.readBooleanArray(dirtyFlags);
mTitleDirty = dirtyFlags[0];
mDescriptionDirty = dirtyFlags[1];
mYearDirty = 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(mYear);
dest.writeBooleanArray(new boolean[] {
mTitleDirty,
mDescriptionDirty,
mYearDirty
});
}
@Override
protected AbstractValuesBuilder createBuilder() {
Builder builder = Movies.newBuilder();
if(mTitleDirty) {
builder.setTitle(mTitle);
}
if(mDescriptionDirty) {
builder.setDescription(mDescription);
}
if(mYearDirty) {
builder.setYear(mYear);
}
return builder;
}
@Override
public void makeDirty(boolean dirty){
mTitleDirty = dirty;
mDescriptionDirty = dirty;
mYearDirty = dirty;
}
@Override
protected void setPropertiesFromCursor(Cursor c) {
setId(c.getLong(Indices._ID));
setTitle(c.getString(Indices.TITLE));
setDescription(c.getString(Indices.DESCRIPTION));
setYear(c.getLong(Indices.YEAR));
}
public static MoviesRecord fromCursor(Cursor c) {
MoviesRecord item = new MoviesRecord();
item.setPropertiesFromCursor(c);
item.makeDirty(false);
return item;
}
public static MoviesRecord fromBundle(Bundle bundle, String key) {
bundle.setClassLoader(MoviesRecord.class.getClassLoader());
return bundle.getParcelable(key);
}
public static MoviesRecord get(long id) {
Cursor c = null;
ContentResolver resolver = Mechanoid.getContentResolver();
try {
c = resolver.query(Movies.CONTENT_URI.buildUpon()
.appendPath(String.valueOf(id)).build(), PROJECTION, null, null, null);
if(!c.moveToFirst()) {
return null;
}
return fromCursor(c);
} finally {
Closeables.closeSilently(c);
}
}
}