/*
  * (non-Javadoc)
  * @see
  * FormsOnlineDAO#createInstance(com.silverpeas.formsonline.model
  * .FormInstance)
  */
 public FormInstance createInstance(FormInstance instance) throws FormsOnlineDatabaseException {
   Connection con = getConnection();
   try (PreparedStatement stmt = con.prepareStatement(QUERY_INSERT_FORMINSTANCE)) {
     int id = DBUtil.getNextId(FORMS_INSTANCES_TABLENAME, "id");
     stmt.setInt(1, id);
     stmt.setInt(2, instance.getFormId());
     stmt.setInt(3, instance.getState());
     stmt.setString(4, instance.getCreatorId());
     prepareDateStatement(stmt, 5, instance.getCreationDate());
     stmt.setString(6, instance.getValidatorId());
     prepareDateStatement(stmt, 7, instance.getValidationDate());
     stmt.setString(8, instance.getComments());
     stmt.setString(9, instance.getComponentInstanceId());
     stmt.executeUpdate();
     instance.setId(id);
     return instance;
   } catch (SQLException se) {
     throw new FormsOnlineDatabaseException(
         "FormsOnlineDAOJdbc.createInstance()",
         SilverpeasException.ERROR,
         "formsOnline.INSERTING_FORMINSTANCE_FAILED",
         se);
   } finally {
     freeConnection(con);
   }
 }
  private FormInstance fetchFormInstance(ResultSet rs) throws SQLException {
    FormInstance formInstance = new FormInstance();

    formInstance.setId(rs.getInt("id"));
    formInstance.setFormId(rs.getInt("formId"));
    formInstance.setState(rs.getInt("state"));
    formInstance.setCreatorId(rs.getString("creatorId"));
    formInstance.setCreationDate(rs.getTimestamp("creationDate"));
    formInstance.setValidatorId(rs.getString("validatorId"));
    formInstance.setValidationDate(rs.getTimestamp("validationDate"));
    formInstance.setComments(rs.getString("comments"));
    formInstance.setInstanceId(rs.getString("instanceId"));

    return formInstance;
  }