/**
   * tableInserter insert the values of the list in the table
   *
   * @param o
   */
  public static void tableInserter(Object o) {

    Task taskToInsert = null;

    if (o instanceof Task) taskToInsert = (Task) o;

    try {
      Class.forName("org.sqlite.JDBC");
      connection = DriverManager.getConnection("jdbc:sqlite:Organizer.db");
      connection.setAutoCommit(false);
      etat = connection.createStatement();

      // queries
      String insertQuery =
          "INSERT INTO TASK (idTask,idParentProject,idParentWorkspace,taskPositionAL,taskPositionLL,taskName,taskCreationdate,taskDescription,taskTimeSpentOn,taskTimePlanned,taskAdvancement,isCompleted ) "
              + "VALUES ('"
              + taskToInsert.getTaskID()
              + "','"
              + taskToInsert.getParentProject().getProjectID()
              + "','"
              + taskToInsert.getParentProject().getParentWorkspace().getWorkspaceID()
              + "',"
              // +
              // taskToInsert.getParentProject().getParentWorkspace().getParentUser().getUserID()
              // + "',"
              + taskToInsert.getPositionInArrayList()
              + ","
              + taskToInsert.getPositionInTaskList()
              + ",'"
              + taskToInsert.getName()
              + "','"
              + BasicQueryContainer.DateToStringFormat(taskToInsert.getTaskCreationDate())
              + "','"
              + taskToInsert.getTaskDescription()
              + "',"
              + taskToInsert.getTimeSpentWorking()
              + ","
              + taskToInsert.getTimeEstimate()
              + ","
              + taskToInsert.getAdvancement()
              + ",'"
              + taskToInsert.getIsCompleted()
              + "');";

      // execution
      etat.executeUpdate(insertQuery);

      etat.close();
      connection.commit();
      connection.close();
    } catch (Exception e) {
      System.err.println(e.getClass().getName() + ": " + e.getMessage());
      System.exit(0);
    }
    System.out.println("Insert operation in table TASK done successfully !!");
  }
  /** tableExtrator field the list with the value present in the table */
  public static void tableExtractor() {
    try {
      Class.forName("org.sqlite.JDBC");
      connection = DriverManager.getConnection("jdbc:sqlite:Organizer.db");
      connection.setAutoCommit(false);
      etat = connection.createStatement();

      ResultSet rs = etat.executeQuery("SELECT * FROM TASK ORDER BY taskPositionLL;");

      while (rs.next()) {

        // recovery the values of de column in rows
        String idTask = rs.getString("idTask");
        String idParentProject = rs.getString("idParentProject");
        int taskPositionAL = rs.getInt("taskPositionAL");
        int taskPositionLL = rs.getInt("taskPositionLL");
        String taskName = rs.getString("taskName");
        String taskCreationdate = rs.getString("taskCreationdate");
        String taskDescription = rs.getString("taskDescription");
        int taskTimeSpentOn = rs.getInt("taskTimeSpentOn");
        int taskTimePlanned = rs.getInt("taskTimePlanned");
        int taskAdvancement = rs.getInt("taskAdvancement");
        boolean isCompleted = rs.getBoolean("isCompleted");

        // creation of a new task for each rows present in table
        Task task =
            new Task(
                idTask,
                idParentProject,
                taskPositionAL,
                taskPositionLL,
                taskName,
                BasicQueryContainer.stringToDate(taskCreationdate),
                taskDescription,
                taskTimeSpentOn,
                taskTimePlanned,
                taskAdvancement,
                isCompleted);
      }
      System.out.println("The task list was successfully field");

      rs.close();
      etat.close();
      connection.close();

    } catch (Exception e) {
      System.err.println(e.getClass().getName() + ": " + e.getMessage());
      System.exit(0);
    }
  }