code: @Override public void removed(Task task)
     {
        //
        // Remove the task from the file and its parent task
        //
        m_uniqueIDMap.remove(task.getUniqueID());
        m_idMap.remove(task.getID());
  
        Task parentTask = task.getParentTask();
        if (parentTask != null)
        {
           parentTask.removeChildTask(task);
        }
        else
        {
           m_projectFile.getChildTasks().remove(task);
        }
  
        //
        // Remove all resource assignments
        //
        Iterator<ResourceAssignment> iter = m_projectFile.getResourceAssignments().iterator();
        while (iter.hasNext() == true)
        {
           ResourceAssignment assignment = iter.next();
           if (assignment.getTask() == task)
           {
              Resource resource = assignment.getResource();
              if (resource != null)
              {
                 resource.removeResourceAssignment(assignment);
              }
              iter.remove();
           }
        }
  
        //
        // Recursively remove any child tasks
        //
        while (true)
        {
           List<Task> childTaskList = task.getChildTasks();
           if (childTaskList.isEmpty() == true)
           {
              break;
           }
  
           remove(childTaskList.get(0));
        }
     }
docs: {@inheritDoc}