code: private void modifyMachine(TaskAssignment taskAssignment, Machine oldMachine, Machine newMachine) {
          if (Objects.equals(oldMachine, newMachine)) {
              return;
          }
          Integer startPeriod = taskAssignment.getStartPeriod();
          if (startPeriod == null) {
              return;
          }
          Integer endPeriod = taskAssignment.getEndPeriod();
          if (oldMachine != null) {
              MachinePeriodPart[] machinePeriodList = machineToMachinePeriodListMap[oldMachine.getIndex()];
              retractRange(taskAssignment, machinePeriodList, startPeriod, endPeriod, false);
          }
          if (newMachine != null) {
              MachinePeriodPart[] machinePeriodList = machineToMachinePeriodListMap[newMachine.getIndex()];
              insertRange(taskAssignment, machinePeriodList, startPeriod, endPeriod, false);
          }
      }
docs: ************************************************************************