package org.dodgybits.shuffle.android.core.model.encoding;
import static android.provider.BaseColumns._ID;
import static org.dodgybits.shuffle.android.persistence.provider.ProjectProvider.Projects.ARCHIVED;
import static org.dodgybits.shuffle.android.persistence.provider.ProjectProvider.Projects.DEFAULT_CONTEXT_ID;
import static org.dodgybits.shuffle.android.persistence.provider.ProjectProvider.Projects.MODIFIED_DATE;
import static org.dodgybits.shuffle.android.persistence.provider.ProjectProvider.Projects.NAME;
import static org.dodgybits.shuffle.android.persistence.provider.ProjectProvider.Projects.PARALLEL;
import static org.dodgybits.shuffle.android.persistence.provider.ProjectProvider.Projects.TRACKS_ID;
import org.dodgybits.shuffle.android.core.model.Project;
import org.dodgybits.shuffle.android.core.model.Project.Builder;
import android.os.Bundle;
import com.google.inject.Singleton;
@Singleton
public class ProjectEncoder extends AbstractEntityEncoder implements EntityEncoder<Project> {
@Override
public void save(Bundle icicle, Project project) {
putId(icicle, _ID, project.getLocalId());
putId(icicle, TRACKS_ID, project.getTracksId());
icicle.putLong(MODIFIED_DATE, project.getModifiedDate());
putString(icicle, NAME, project.getName());
putId(icicle, DEFAULT_CONTEXT_ID, project.getDefaultContextId());
icicle.putBoolean(ARCHIVED, project.isArchived());
icicle.putBoolean(PARALLEL, project.isParallel());
}
@Override
public Project restore(Bundle icicle) {
if (icicle == null) return null;
Builder builder = Project.newBuilder();
builder.setLocalId(getId(icicle, _ID));
builder.setModifiedDate(icicle.getLong(MODIFIED_DATE, 0L));
builder.setTracksId(getId(icicle, TRACKS_ID));
builder.setName(getString(icicle, NAME));
builder.setDefaultContextId(getId(icicle, DEFAULT_CONTEXT_ID));
builder.setArchived(icicle.getBoolean(ARCHIVED));
builder.setParallel(icicle.getBoolean(PARALLEL));
return builder.build();
}
}