code: public Slice build() throws SchedulerException {
          if (hoster == null) {
              hoster = rp.makeHostVariable(lblPrefix, "_hoster");
          }
          if (start == null) {
              start = rp.getStart();
          }
          if (end == null) {
              end = rp.getEnd();
          }
          if (duration == null) {
              duration = makeDuration();
          }
  
          //UB for the time variables
          if (!start.isInstantiatedTo(0)) {
              //enforces start <= end, duration <= end, start + duration == end
              TaskMonitor.build(start, duration, end);
          }
          //start == 0 --> start <= end. duration = end enforced by TaskScheduler
          return new Slice(vm, start, end, duration, hoster);
      }
docs: Build the slice.
  
  @return the resulting slice
  @throws org.btrplace.scheduler.SchedulerException if an error occurred