package nl.itopia.corendon.model;
import nl.itopia.corendon.data.Role;
import nl.itopia.corendon.utils.Log;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
* © 2014, Biodiscus.net robin
*/
public class RoleModel {
private static final RoleModel _default = new RoleModel();
private final DatabaseManager dbmanager = DatabaseManager.getDefault();
private RoleModel() {}
public Role getRole(int id) {
Role role = null;
try {
ResultSet result = dbmanager.doQuery("SELECT * FROM role WHERE id = "+ id);
if(result.next()) {
String name = result.getString("name");
//role = new Role(id, name);
}
} catch (SQLException e) {
Log.display("SQLEXCEPTION", e.getErrorCode(), e.getSQLState(), e.getMessage());
}
return role;
}
public static RoleModel getDefault() {
return _default;
}
public Role getRoleByEmployeeId(int employeeId) {
/* Role query */
String roleQuery = "SELECT roles.id, roles.name FROM employee\n" +
"INNER JOIN roles ON roles.id = employee.role_id\n" +
"WHERE employee.id = " + employeeId;
/* create role object so we can manipulate it later on */
Role role = null;
try {
/* try to run the sql query */
ResultSet result = dbmanager.doQuery(roleQuery);
if(result.next()) {
/* ok, there is a record. Get the field values */
int roleId = result.getInt("id");
String roleName = result.getString("name");
/* make a new role object and send the field values to the constructor */
role = new Role(roleId, roleName);
}
} catch (SQLException e) {
Log.display("SQLEXCEPTION", e.getErrorCode(), e.getSQLState(), e.getMessage());
}
/* return the full role */
return role;
}
/**
* Parse a resultset to a Role Object
*
* @param result a {@code ResultSet} ResultSet
* @return full roles object
*/
private Role resultToRole(ResultSet result) throws SQLException {
int id = result.getInt("id");
String name = result.getString("name");
return new Role(id, name);
}
public List<Role> getRoles() {
List<Role> roleList = new ArrayList<Role>();
try{
ResultSet result = dbmanager.doQuery("SELECT * FROM roles ORDER BY id");
while (result.next()) {
int id = result.getInt("id");
String name = result.getString("name");
Role roles = resultToRole(result);
roleList.add(roles);
}
} catch (SQLException e) {
Log.display("SQLEXCEPTION", e.getErrorCode(), e.getSQLState(), e.getMessage());
}
return roleList;
}
}