makeSetupWrapupExpansion (mpTask, anAsset, start, end, setupStart, wrapupEnd);
if (assetWasUsedBefore) { warn ("asset was used before, but made a new mptask : " + mpTask.getUID()); }  Collection subtasks = makeSetupWrapupExpansion (mpTask, anAsset, start, end, setupStart, wrapupEnd);  for (Iterator iter = subtasks.iterator(); iter.hasNext(); ) { Task subtask = (Task) iter.next(); String taskKey = anAsset.getUID().toString() + "-" + prefHelper.getReadyAt(subtask).getTime() + "-" + prefHelper.getBestDate(subtask).getTime();  if (tripletToTask.get (taskKey) == null) { tripletToTask.put (taskKey, subtask); if (isInfoEnabled ()) { info (getName ()+ " mapping " + taskKey + " to " + subtask.getUID()); } taskToMPTask.put  (subtask, mpTask); } else { warn (getName () + " - unexpected : there already is a task in table with key " +taskKey); } }
  public void makePlanElement (Vector tasklist, Asset anAsset, Date start, Date end, Date setupStart, Date wrapupEnd,			       boolean assetWasUsedBefore) {    if (assetWasUsedBefore) {      if (addToPrevious (tasklist, anAsset, start, end, setupStart, wrapupEnd))	return;    }    List aggResults = aggregateHelper.makeAggregation(this,						      ldmf,						realityPlan,						tasklist,						getVerbForAgg(tasklist),						getPrepPhrasesForAgg(anAsset, tasklist),						getDirectObjectsForAgg(tasklist),						getPreferencesForAgg(anAsset, tasklist, start, end),						getAgentIdentifier(),						getAspectValuesMap(tasklist, start, end),						allocHelper.MEDIUM_CONFIDENCE);    publishList(aggResults);          cleanupAggregation(anAsset, tasklist, aggResults);    Task mpTask = findMPTask (aggResults);    makeSetupWrapupExpansion (mpTask, anAsset, start, end, setupStart, wrapupEnd);  }