package org.openlmis.core.model.repository; import android.content.Context; import com.google.inject.Inject; import com.j256.ormlite.dao.Dao; import org.openlmis.core.exceptions.LMISException; import org.openlmis.core.model.RegimenItem; import org.openlmis.core.persistence.DbUtil; import org.openlmis.core.persistence.GenericDao; import java.sql.SQLException; import java.util.List; public class RegimenItemRepository { GenericDao<RegimenItem> genericDao; @Inject DbUtil dbUtil; @Inject public RegimenItemRepository(Context context) { this.genericDao = new GenericDao<>(RegimenItem.class, context); } public void batchCreateOrUpdate(final List<RegimenItem> regimenItemList) throws LMISException { dbUtil.withDaoAsBatch(RegimenItem.class, new DbUtil.Operation<RegimenItem, Void>() { @Override public Void operate(Dao<RegimenItem, String> dao) throws SQLException { for (RegimenItem item : regimenItemList) { dao.createOrUpdate(item); } return null; } }); } public void create(final RegimenItem regimenItem) throws LMISException { dbUtil.withDao(RegimenItem.class, new DbUtil.Operation<RegimenItem, Void>() { @Override public Void operate(Dao<RegimenItem, String> dao) throws SQLException { dao.create(regimenItem); return null; } }); } public void deleteRegimenItems(final List<RegimenItem> regimenItemListWrapper) throws LMISException { dbUtil.withDao(RegimenItem.class, new DbUtil.Operation<RegimenItem, Void>() { @Override public Void operate(Dao<RegimenItem, String> dao) throws SQLException { dao.delete(regimenItemListWrapper); return null; } }); } public void deleteRegimeItem(final RegimenItem item) throws LMISException { dbUtil.withDao(RegimenItem.class, new DbUtil.Operation<RegimenItem, Void>() { @Override public Void operate(Dao<RegimenItem, String> dao) throws SQLException { dao.delete(item); return null; } }); } public List<RegimenItem> listAll() throws LMISException { return dbUtil.withDao(RegimenItem.class, new DbUtil.Operation<RegimenItem, List<RegimenItem>>() { @Override public List<RegimenItem> operate(Dao<RegimenItem, String> dao) throws SQLException { return dao.queryForAll(); } }); } }