/**
   * Create a new Todo.
   *
   * @see tudu.service.TodosService#createTodo(java.lang.String listId, tudu.domain.Todo)
   */
  public void createTodo(final String listId, final Todo todo) {

    Date now = Calendar.getInstance().getTime();
    todo.setCreationDate(now);
    TodoList todoList = todoListsService.findTodoList(listId);
    todo.setTodoList(todoList);
    todoList.getTodos().add(todo);
    todoListsService.updateTodoList(todoList);
  }
 /** @see tudu.service.TodosService#deleteAllCompletedTodos(java.lang.String) */
 public void deleteAllCompletedTodos(String listId) {
   TodoList todoList = todoListsService.findTodoList(listId);
   List<Todo> todosToRemove = new ArrayList<Todo>();
   for (Todo todo : todoList.getTodos()) {
     if (todo.isCompleted()) {
       todosToRemove.add(todo);
     }
   }
   todoList.getTodos().removeAll(todosToRemove);
   for (Todo todo : todosToRemove) {
     em.remove(todo);
   }
   todoListsService.updateTodoList(todoList);
 }
 /** @see tudu.service.TodosService#reopenTodo(java.lang.String) */
 public Todo reopenTodo(String todoId) {
   Todo todo = this.findTodo(todoId);
   todo.setCompleted(false);
   todo.setCompletionDate(null);
   todoListsService.updateTodoList(todo.getTodoList());
   return todo;
 }
 /** @see tudu.service.TodosService#completeTodo(java.lang.String) */
 public Todo completeTodo(String todoId) {
   Todo todo = this.findTodo(todoId);
   todo.setCompleted(true);
   todo.setCompletionDate(Calendar.getInstance().getTime());
   todoListsService.updateTodoList(todo.getTodoList());
   return todo;
 }
 /**
  * Delete a Todo.
  *
  * @see tudu.service.TodosService#deleteTodo(java.lang.String)
  */
 public void deleteTodo(final String todoId) {
   Todo todo = this.findTodo(todoId);
   TodoList todoList = todo.getTodoList();
   todoList.getTodos().remove(todo);
   em.remove(todo);
   todoListsService.updateTodoList(todoList);
 }