package com.mechinn.android.ouralliance.data.frc2015;
import android.database.Cursor;
import com.activeandroid.annotation.Column;
import com.activeandroid.annotation.Table;
import com.activeandroid.query.Select;
import com.mechinn.android.ouralliance.data.TeamScouting;
import com.mechinn.android.ouralliance.data.Wheel;
import java.util.Date;
import de.greenrobot.event.EventBus;
import de.greenrobot.event.util.AsyncExecutor;
import timber.log.Timber;
@Table(name= Wheel2015.TAG, id = Wheel2015.ID)
public class Wheel2015 extends Wheel {
public final static String TAG = "Wheel2015";
public final static String TEAM_SCOUTING = TeamScouting2015.TAG;
@Column(name=TEAM_SCOUTING, onDelete = Column.ForeignKeyAction.CASCADE, notNull = true, onNullConflict = Column.ConflictAction.FAIL, uniqueGroups = {Wheel.TAG}, onUniqueConflicts = {Column.ConflictAction.FAIL})
private TeamScouting2015 teamScouting2015;
public Wheel2015() {}
public Wheel2015(Cursor cursor) {
this.loadFromCursor(cursor);
}
public TeamScouting2015 getTeamScouting2015() {
return teamScouting2015;
}
public void setTeamScouting2015(TeamScouting2015 teamScouting2015) {
if(null==teamScouting2015 && null!=this.teamScouting2015 || null!=teamScouting2015 && !teamScouting2015.equals(this.teamScouting2015)) {
this.teamScouting2015 = teamScouting2015;
changedData();
}
}
public void replaceTeamScouting2015(TeamScouting2015 teamScouting2015) {
this.teamScouting2015 = teamScouting2015;
}
public TeamScouting getTeamScouting() {
return getTeamScouting2015();
}
public void setTeamScouting(TeamScouting teamScouting) {
setTeamScouting2015((TeamScouting2015) teamScouting);
}
@Override
protected void saveTeamScouting() {
this.getTeamScouting2015().saveMod();
if(-1==this.getTeamScouting2015().getId()) {
this.replaceTeamScouting2015(TeamScouting2015.load(this.getTeamScouting2015().getTeam().getId()));
}
}
public boolean equals(Object data) {
if(!(data instanceof Wheel2015)) {
return false;
}
try {
return super.equals(data) &&
this.getTeamScouting2015().equals(((Wheel2015) data).getTeamScouting2015());
} catch (NullPointerException e) {
return false;
}
}
public static Wheel2015 load(long teamScouting2015id) {
return new Select().from(Wheel2015.class).where(Wheel2015.TEAM_SCOUTING+"=?",teamScouting2015id).executeSingle();
}
public void asyncSave() {
AsyncExecutor.create().execute(new AsyncExecutor.RunnableEx() {
@Override
public void run() throws Exception {
saveMod();
EventBus.getDefault().post(Wheel2015.this);
}
});
}
public void asyncDelete() {
AsyncExecutor.create().execute(new AsyncExecutor.RunnableEx() {
@Override
public void run() throws Exception {
delete();
EventBus.getDefault().post(Wheel2015.this);
}
});
}
}