package com.mechinn.android.ouralliance.data;
import android.provider.BaseColumns;
import android.util.Log;
import com.activeandroid.Model;
import com.activeandroid.annotation.Column;
import java.util.Date;
import de.greenrobot.event.EventBus;
import de.greenrobot.event.util.AsyncExecutor;
import timber.log.Timber;
public abstract class OurAllianceObject extends Model {
public final static String TAG = "OurAllianceObject";
public final static String ID = BaseColumns._ID;
public final static String MODIFIED = "modified";
@Column(name = MODIFIED, notNull = true)
private Date modified;
private boolean changed;
public OurAllianceObject() {
super();
changed = false;
}
public Date getModified() {
return modified;
}
public void setModified(Date modified) {
this.modified = modified;
}
public boolean copy(OurAllianceObject data) {
if(this.equals(data)) {
this.setModified(data.getModified());
return true;
}
return false;
}
protected void changedData() {
changed = true;
}
public void saveMod() {
if(changed || null==getModified()) {
if(null==this.getId()) {
setModified(new Date(0));
} else {
setModified(new Date());
}
}
Timber.d("saving object");
save();
}
public void saveEvent() {
EventBus.getDefault().post(this);
}
public abstract void asyncSave();
public abstract void asyncDelete();
}