for (int rightIndex = 0; rightIndex <= rightShiftAssignmentList.size() - SWITCH_LENGTH; rightIndex++) {
List<Move> subMoveList = new ArrayList<Move>(SWITCH_LENGTH * 2);
for (ShiftAssignment leftShiftAssignment : leftShiftAssignmentList
.subList(leftIndex, leftIndex + SWITCH_LENGTH)) {
subMoveList.add(new EmployeeChangeMove(leftShiftAssignment, rightEmployee));
}
for (ShiftAssignment rightShiftAssignment : rightShiftAssignmentList
.subList(rightIndex, rightIndex + SWITCH_LENGTH)) {
subMoveList.add(new EmployeeChangeMove(rightShiftAssignment, leftEmployee));
}
moveList.add(new CompositeMove(subMoveList));
}
}
}