package com.yassirh.digitalocean.data;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.yassirh.digitalocean.model.Droplet;
import com.yassirh.digitalocean.model.FloatingIP;
import com.yassirh.digitalocean.model.Region;
import java.util.List;
public class FloatingIPDao extends SqlDao<FloatingIP> {
private DatabaseHelper databaseHelper;
public FloatingIPDao(DatabaseHelper databaseHelper) {
super();
this.databaseHelper = databaseHelper;
}
public long create(FloatingIP floatingIP) {
ContentValues values = new ContentValues();
values.put(FloatingIPTable.IP_ADDRESS, floatingIP.getIp());
if(floatingIP.getRegion() != null) {
values.put(FloatingIPTable.REGION_SLUG, floatingIP.getRegion().getSlug());
}
if(floatingIP.getDroplet() != null) {
values.put(FloatingIPTable.DROPLET_ID, floatingIP.getDroplet().getId());
}
return db.insertWithOnConflict(getTableHelper().TABLE_NAME, null, values,SQLiteDatabase.CONFLICT_REPLACE);
}
public FloatingIP newInstance(Cursor c) {
FloatingIP floatingIP = new FloatingIP();
floatingIP.setId(c.getLong(c.getColumnIndex((FloatingIPTable.ID))));
floatingIP.setIp(c.getString(c.getColumnIndex(FloatingIPTable.IP_ADDRESS)));
Region region = new RegionDao(databaseHelper).findByProperty(RegionTable.REGION_SLUG, c.getString(c.getColumnIndex(FloatingIPTable.REGION_SLUG)));
floatingIP.setRegion(region);
Droplet droplet = new DropletDao(databaseHelper).findByProperty(DropletTable.ID, c.getString(c.getColumnIndex(FloatingIPTable.DROPLET_ID)));
floatingIP.setDroplet(droplet);
return floatingIP;
}
@Override
public DatabaseHelper getDatabaseHelper() {
return this.databaseHelper;
}
@Override
public TableHelper getTableHelper() {
return new FloatingIPTable();
}
}