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.Lateness;
import com.stxnext.management.android.storage.sqlite.EntityMapper;
public class LatenessDao extends AbstractDAO implements LatenessColumns {
private EntityMapper<Lateness> mapper;
public LatenessDao() {
this.mapper = new LatenessMapper();
}
public List<Lateness> fetch(boolean workFromHome) {
String selection = WORK_FROM_HOME+"=? ";
String[] selectionArgs = new String[]{workFromHome?"1":"0"};
List<Lateness> result = new ArrayList<Lateness>();
Cursor c = db.query(TABLE, null, selection, selectionArgs, null, null, null);
result = mapper.mapEntity(c);
c.close();
return result;
}
public void persist(List<Lateness> lates) {
db.beginTransaction();
try {
for (Lateness late : lates) {
ContentValues cv = new ContentValues();
cv.put(LATE_ID, late.getLateId().longValue());
cv.put(END, late.getEnd());
cv.put(NAME, late.getName());
cv.put(EXPLANATION, late.getExplanation());
cv.put(START, late.getStart());
cv.put(USER_ID, late.getId().longValue());
cv.put(WORK_FROM_HOME, late.getWorkFromHome() != null ? (late.getWorkFromHome() ? 1
: 0) : 0);
insertOrReplace(TABLE, cv);
db.yieldIfContendedSafely();
}
db.setTransactionSuccessful();
} catch (Exception e) {
Log.e("", "", e);
} finally {
db.endTransaction();
}
}
@Override
protected String getTableName() {
return TABLE;
}
}