package com.stxnext.management.android.storage.sqlite.dao;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.database.Cursor;
import android.util.Log;
import com.stxnext.management.android.dto.local.Absence;
import com.stxnext.management.android.storage.sqlite.EntityMapper;
public class AbsenceDao extends AbstractDAO implements AbsenceColumns{
private EntityMapper<Absence> mapper;
public AbsenceDao() {
this.mapper = new AbsenceMapper();
}
public List<Absence> fetch(){
List<Absence> result = new ArrayList<Absence>();
Cursor c = db.query(TABLE, null, null, null, null, null, null);
result = mapper.mapEntity(c);
c.close();
return result;
}
public void persist(List<Absence> absences){
db.beginTransaction();
try {
for (Absence absence : absences) {
ContentValues cv = new ContentValues();
cv.put(ABSENCE_ID, absence.getAbstenceId().longValue());
cv.put(END, absence.getEnd());
cv.put(NAME, absence.getName());
cv.put(REMARKS, absence.getRemarks());
cv.put(START, absence.getStart());
cv.put(USER_ID, absence.getId().longValue());
insertOrReplace(TABLE, cv);
db.yieldIfContendedSafely();
}
db.setTransactionSuccessful();
} catch (Exception e) {
Log.e("", "", e);
} finally {
db.endTransaction();
}
}
@Override
protected String getTableName() {
return TABLE;
}
}