I want to create method thatd add trainings which belongs to some trainingCycle to calendar. Problably I made some mistake becouse it's adding all trainings to only one day.
TrainingCycle model class:
@DynamoDBTable(tableName = "trainingCycle")
public class TrainingCycle extends Request {
private String id;
private String cycleName;
private Long cycleTime;
private LocalDateTime startTime;
private List> trainingsForDay;
Training model class:
@DynamoDBTable(tableName = "training")
@DynamoDBDocument
public class Training extends Request {
private String id;
private String trainingName;
private Integer predictedCaloriesToBurn;
private Integer burnedCalories;
private LocalDateTime startTime;
private LocalDateTime endTime;
private List exerciseList;
private List trainingLabels;
private boolean approved;
private ActivityDay activityDay;
AddTrainingCycle method:
public List addTrainingCycle(String userId, TrainingCycle trainingCycle, LocalDate localDate) {
List days = new ArrayList<>();
for (List trainings : trainingCycle.getTrainingsForDay()) {
if (trainings == null || trainings.isEmpty()) {
localDate.plusDays(1);
} else {
Day actualDay = getActivityBoardDay(localDate, userId);
actualDay.getTrainings().addAll(trainings);
localDate.plusDays(1);
days.add(actualDay);
}
}
return days;
}
I've created test method and as I said - it's adding all of trainings but only for one day from argument, it's not increasing LocalDate. Can someone help me with that?
解决方案
LocalDate is immutable.
localDate.plusDays(1) does not modify the current localDate. It returns the new value which is current date plus one.
You have to reassign it:
localDate = localDate.plusDays(1);