/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package beans.core.db;
import beans.enumeration.Target;
import beans.enumeration.Utilization;
import beans.serializable.ChangeStatut;
import beans.serializable.Objet;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author mastersnes
*/
public class ObjetControl {
private static final String TARGET = "target";
private static final String USE = "use";
private static final String DESCRIPTION = "descriptionObjet";
private static final String NAME = "nameObjet";
public static final String TABLE_NAME = "OBJET";
private static final ChangeStatutControl changeStatutControl = new ChangeStatutControl();
public Objet getObjet(final String name) {
ResultSet set = null;
PreparedStatement statement = null;
try {
statement = Database.getStatement("select * from "+TABLE_NAME+" where "+NAME+" = ?");
statement.setString(1, name);
set = statement.executeQuery();
if (set.next()) {
final Objet objet = getFromRowSet(set);
return objet;
} else {
return null;
}
} catch (final SQLException ex) {
Logger.getLogger(ObjetControl.class.getName()).log(Level.SEVERE, null, ex);
return null;
} finally {
closeProperly(statement);
}
}
private static void closeProperly(PreparedStatement statement) {
if (statement != null) {
try {
statement.close();
} catch (final SQLException ex) {
Logger.getLogger(ObjetControl.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
private static Objet getFromRowSet(final ResultSet set) {
try {
final Objet objet = new Objet();
objet.setName(set.getString(NAME));
objet.setDescription(set.getString(DESCRIPTION));
objet.setChangeStatut(changeStatutControl.getChangeStatut(objet.getName(), TABLE_NAME));
objet.setTarget(Target.valueOf(set.getString(TARGET)));
objet.setUse(Utilization.valueOf(set.getString(USE)));
return objet;
} catch (SQLException ex) {
Logger.getLogger(ObjetControl.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
public void saveObjet(final Objet objet) {
PreparedStatement statement = null;
for (final ChangeStatut changeStatut : objet.getChangeStatut()) {
changeStatutControl.saveChangeStatut(objet.getName(), changeStatut, TABLE_NAME);
}
try {
statement = Database.getStatement("insert into "+TABLE_NAME+" values (?,?,?,?)");
statement.setString(1, objet.getName());
statement.setString(2, objet.getDescription());
statement.setString(3, objet.getTarget().name());
statement.setString(4, objet.getUse().name());
statement.executeUpdate();
} catch (final SQLException ex) {
Logger.getLogger(ObjetControl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
closeProperly(statement);
}
}
public static List<Objet> getAllObjets() {
final List<Objet> objets = new ArrayList<Objet>();
ResultSet set = null;
PreparedStatement statement = null;
try {
statement = Database.getStatement("select * from "+TABLE_NAME);
set = statement.executeQuery();
while (set.next()) {
final Objet objet = getFromRowSet(set);
objets.add(objet);
}
return objets;
} catch (final SQLException ex) {
Logger.getLogger(SkillControl.class.getName()).log(Level.SEVERE, null, ex);
return null;
} finally {
closeProperly(statement);
}
}
}