package nl.itopia.corendon.model; import nl.itopia.corendon.data.ChooseItem; import nl.itopia.corendon.data.Color; 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 ColorModel { private final DatabaseManager dbmanager = DatabaseManager.getDefault(); private static final ColorModel _default = new ColorModel(); private ColorModel() {} public Color getColor(int id) { Color color = null; try { ResultSet result = dbmanager.doQuery("SELECT * FROM color WHERE id = "+ id); if(result.next()) { color = resultToColor(result); } } catch (SQLException e) { Log.display("SQLEXCEPTION", e.getErrorCode(), e.getSQLState(), e.getMessage()); } return color; } public Color getColor(String name) { Color color = null; try { ResultSet result = dbmanager.doQuery("SELECT * FROM color WHERE name = '"+ name + "'"); if(result.next()) { color = resultToColor(result); } } catch (SQLException e) { Log.display("SQLEXCEPTION", e.getErrorCode(), e.getSQLState(), e.getMessage()); } return color; } private Color resultToColor(ResultSet result) throws SQLException { int id = result.getInt("id"); String hex = result.getString("name"); return new Color(id, hex); } public List<Color> getColors() { List<Color> colors = new ArrayList<>(); try { String sql = "SELECT * FROM color"; ResultSet result = dbmanager.doQuery(sql); while (result.next()) { colors.add(resultToColor(result)); } } catch (SQLException e) { Log.display("SQLEXCEPTION", e.getErrorCode(), e.getSQLState(), e.getMessage()); } return colors; } public ChooseItem colorToChoose(Color color) { return new ChooseItem(color.getID(), color.getHex()); } public static ColorModel getDefault() { return _default; } }