package com.breakersoft.plow.dao.pgsql; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.UUID; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; import com.breakersoft.plow.Folder; import com.breakersoft.plow.Project; import com.breakersoft.plow.ProjectE; import com.breakersoft.plow.dao.AbstractDao; import com.breakersoft.plow.dao.ProjectDao; import com.breakersoft.plow.util.JdbcUtils; @Repository public final class ProjectDaoImpl extends AbstractDao implements ProjectDao { public static final RowMapper<Project> MAPPER = new RowMapper<Project>() { @Override public Project mapRow(ResultSet rs, int rowNum) throws SQLException { ProjectE project = new ProjectE(); project.setProjectId((UUID) rs.getObject(1)); project.setCode(rs.getString(2)); return project; } }; private static final String INSERT = JdbcUtils.Insert("plow.project", "pk_project", "str_code", "str_title"); @Override public Project create(String title, String code) { final UUID projectId = UUID.randomUUID(); jdbc.update(INSERT, projectId, code, title); final ProjectE project = new ProjectE(); project.setProjectId(projectId); return project; } @Override public Project get(String code) { return jdbc.queryForObject( "SELECT pk_project, str_code FROM plow.project WHERE str_code=?", MAPPER, code); } @Override public Project get(UUID id) { return jdbc.queryForObject( "SELECT pk_project, str_code FROM plow.project WHERE pk_project=?", MAPPER, id); } @Override public List<Project> getAll() { return jdbc.query( "SELECT pk_project, str_code FROM plow.project", MAPPER); } @Override public void setDefaultFolder(Project project, Folder folder) { jdbc.update("UPDATE plow.project SET pk_folder_default=? WHERE pk_project=?", folder.getFolderId(), project.getProjectId()); } @Override public void setActive(Project project, boolean active) { jdbc.update("UPDATE plow.project SET bool_active=? WHERE pk_project=?", active, project.getProjectId()); } }