package me.pbox.site.dao.impl; import me.pbox.site.dao.CategoryDao; import me.pbox.site.model.Category; import me.pbox.site.model.Package; import org.jacuzzi.core.DatabaseException; /** * @author Mike Mirzayanov (mirzayanovmr@gmail.com) */ public class CategoryDaoImpl extends ApplicationDaoImpl<Category> implements CategoryDao { @Override public Category find(String name) { return findOnlyBy("name=?", name); } @Override public void ensureExistsByPackage(Package p) { Category category = find(p.getName()); if (category == null) { category = new Category(); category.setName(p.getName()); try { insert(category); } catch (DatabaseException ignored) { // No operations. } } } @Override public void onDownload(Package p) { if (getJacuzzi().execute("UPDATE `Category` SET `downloadCount`=`downloadCount`+1 WHERE `name`=?", p.getName()) != 1) { throw new DatabaseException("Can't update category by " + p + '.'); } } }