package nl.itopia.corendon.model;
import nl.itopia.corendon.data.Status;
import nl.itopia.corendon.utils.Log;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import nl.itopia.corendon.data.ChooseItem;
/**
* © 2014, Biodiscus.net Robin
*/
public class StatusModel {
private static final StatusModel _default = new StatusModel();
private final DatabaseManager dbmanager = DatabaseManager.getDefault();
private Map<Integer, Status> _cache;
private StatusModel() {
_cache = new HashMap<>();
}
public Status getStatus(String name) {
Status status = null;
try {
ResultSet result = dbmanager.doQuery("SELECT * FROM status WHERE name = '"+ name+"'");
if(result.next()) {
int id = result.getInt("id");
status = new Status(id, name);
}
} catch (SQLException e) {
Log.display("SQLEXCEPTION", e.getErrorCode(), e.getSQLState(), e.getMessage());
}
return status;
}
public List<Status> getFoundLost() {
List<Status> status = new ArrayList<>();
try {
String sql = "SELECT * FROM status WHERE id != 3";
ResultSet result = dbmanager.doQuery(sql);
while (result.next()) {
int id = result.getInt("id");
String name = result.getString("name");
Status stat = new Status(id, name);
status.add(stat);
// Add the airport to the cache
_cache.put(id, stat);
}
} catch (SQLException e) {
Log.display("SQLEXCEPTION", e.getErrorCode(), e.getSQLState(), e.getMessage());
}
return status;
}
public Status getStatus(int id) {
Status status = null;
try {
ResultSet result = dbmanager.doQuery("SELECT * FROM status WHERE id = "+ id);
if(result.next()) {
String name = result.getString("name");
status = new Status(id, name);
}
} catch (SQLException e) {
Log.display("SQLEXCEPTION", e.getErrorCode(), e.getSQLState(), e.getMessage());
}
return status;
}
public ChooseItem statusToChoose(Status status) {
return new ChooseItem(status.getID(), status.getName());
}
public static StatusModel getDefault() {
return _default;
}
}