/*
* Copyleft Flisol 2015.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.flisolsaocarlos.flisolapp.provider.impl;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import org.flisolsaocarlos.flisolapp.model.Edition;
import org.flisolsaocarlos.flisolapp.provider.DatabaseContract.*;
import org.flisolsaocarlos.flisolapp.provider.DatabaseHelper;
import org.flisolsaocarlos.flisolapp.provider.EditionDao;
import org.flisolsaocarlos.flisolapp.service.ApplicationService;
import java.util.ArrayList;
import java.util.List;
public class EditionDaoImpl implements EditionDao {
final static String TAG = EditionDaoImpl.class.getName();
private SQLiteDatabase database;
public EditionDaoImpl() {
DatabaseHelper databaseHelper = ApplicationService.getInstance().getDatabaseHelper();
database = databaseHelper.getWritableDatabase();
}
public Edition findById(int id) {
Edition edition = null;
String[] columns = {EditionColumns.ID,
EditionColumns.YEAR,
};
Cursor cursor = database.rawQuery("SELECT " + columns + " FROM " + Tables.EDITION
+ " WHERE " + EditionColumns.ID + " = " + id, null);
edition = cursorToEdition(cursor);
return edition;
}
@Override
public List<Edition> findAll() {
List<Edition> editions = new ArrayList<Edition>();
String[] columns = {EditionColumns.ID,
EditionColumns.YEAR,
};
Cursor cursor = database.query(Tables.EDITION, columns, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
Edition edition = cursorToEdition(cursor);
editions.add(edition);
cursor.moveToNext();
}
cursor.close();
return editions;
}
@Override
public Edition findByYear(int year) {
String columns = EditionColumns.ID + ", " +
EditionColumns.YEAR;
final String query = "SELECT " + columns + " FROM " + Tables.EDITION + " e "
+ " WHERE e." + EditionColumns.YEAR + " = ? ";
final Cursor cursor = database.rawQuery(query, new String[]{String.valueOf(year)});
cursor.moveToFirst();
Edition edition = cursorToEdition(cursor);
cursor.close();
return edition;
}
private Edition cursorToEdition(Cursor cursor) {
Edition edition = new Edition();
edition.setId(cursor.getInt(0));
edition.setYear(cursor.getInt(1));
return edition;
}
}