Task subTask = makeTask (parentTask, (Asset) itemsToMove.elementAt(i));
Task subTask = makeTask (parentTask, (Asset) itemsToMove.elementAt(i), null);
  public Vector getSubtasks(Task parentTask) {    Vector childTasks = new Vector ();    if (isDebugEnabled())       debug (".getSubtasks - mode is " + mode);    // if the incoming task is already a low fidelity task, we don't need to do anything to it    if (prepHelper.hasPrepNamed(parentTask, GLMTransConst.LOW_FIDELITY)) {      // pass through      Asset lowFiAsset = parentTask.getDirectObject();      Task subTask = makeTask (parentTask, lowFiAsset);      NewLowFidelityAssetPG lowFiPG = 	(NewLowFidelityAssetPG)ldmf.createPropertyGroup(LowFidelityAssetPG.class);      lowFiPG.setOriginalAsset (lowFiAsset);      attachPG(lowFiAsset, lowFiPG); // now subobject has pointer back to parent      if (isDebugEnabled()) 	debug (".getSubtasks - processing task " + parentTask.getUID () + 	       " by attaching low fi pg to it's d.o. - " + lowFiAsset);      childTasks.addElement (subTask);    }    else if (mode.getValue ().equals(LOW_FIDELITY)) {      if (isDebugEnabled()) 	debug (".getSubtasks - processing task " + parentTask.getUID () + 	       " in LOW fidelity mode. d.o. is " + parentTask.getDirectObject());      childTasks = getLowFidelityTask (parentTask);    }    else {      if (isDebugEnabled()) 	debug (".getSubtasks - processing task " + parentTask.getUID () + 	       " in HIGH fidelity mode. d.o. is " + parentTask.getDirectObject());      Vector itemsToMove = expandAsset((Asset)parentTask.getDirectObject());      for (int i = 0; i < itemsToMove.size (); i++) {	Task subTask = makeTask (parentTask, (Asset) itemsToMove.elementAt(i));	childTasks.addElement (subTask);      }    }    return childTasks;  }