code: @Override
      public Result evaluate(TaskRequest taskRequest, VirtualMachineCurrentState targetVM, TaskTrackerState taskTrackerState) {
          Collection<TaskRequest> runningTasks = targetVM.getRunningTasks();
          if(runningTasks!=null && !runningTasks.isEmpty())
              return new Result(false, "Already has " + runningTasks.size() + " tasks running on it");
          Collection<TaskAssignmentResult> tasksCurrentlyAssigned = targetVM.getTasksCurrentlyAssigned();
          if(tasksCurrentlyAssigned!=null && !tasksCurrentlyAssigned.isEmpty())
              return new Result(false, "Already has " + tasksCurrentlyAssigned.size() + " assigned on it");
          return new Result(true, "");
      }
docs: Determines whether the prospective host already has tasks either running on it or assigned to be run on
  it, and returns a false Result if either of those things is the case.
  
  @param taskRequest      describes the task to be considered for assignment to the host
  @param targetVM         describes the host to be considered for accepting the task
  @param taskTrackerState describes the state of tasks assigned to or running on hosts throughout the
  system
  @return an unsuccessful Result if the target already has running tasks or assigned tasks, or a successful
  Result otherwise