if (!FIND_FOR_UNIT_PREP_ON_TASK) { prepHelper.replacePrepOnTask (subTask, prepHelper.makePrepositionalPhrase (ldmf, Constants.Preposition.FOR, getClusterName())); }
  protected Task createSubtask (Task parentTask, Asset directObject, 				Date early, Date best, Date late, 				long bestTime,				long daysSoFar,				Date lastBestDate,				String itemNomen,				double massInSTons) {    Task subTask = makeTask (parentTask, directObject);//deliveredAsset);    Date startDate = new Date(getAlarmService().currentTimeMillis () +			      TASK_TRANSMISSION_DELAY);    if (isInfoEnabled ())      info (getName () + ".getSubtasks - making task " + subTask.getUID() +	    " with best arrival " + new Date(bestTime) + " and start " + startDate);        // prevent earliest arrival being before start date    if (early.getTime() < startDate.getTime()) {      early = startDate;    }            prefHelper.replacePreference((NewTask)subTask,				 prefHelper.makeEndDatePreference (ldmf,								   early,								   new Date (bestTime),								   late));    prefHelper.replacePreference((NewTask)subTask,				 prefHelper.makeStartDatePreference (ldmf, startDate));    prefHelper.removePrefWithAspectType (subTask, AlpineAspectType.DEMANDRATE); // we've included it in the d.o.    prepHelper.removePrepNamed (subTask, Constants.Preposition.MAINTAINING);    prepHelper.removePrepNamed (subTask, Constants.Preposition.REFILL);    prepHelper.addPrepToTask (subTask, prepHelper.makePrepositionalPhrase (ldmf, "Start", lastBestDate));    if (isInfoEnabled()) {      info (getName () + " publishing reservation " + subTask.getUID() +	    " for " + itemNomen +	    " from " + lastBestDate + " to " + new Date(bestTime) + " weight " +	    massInSTons + " short tons.");    }    return subTask;  }