-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTheme.java
More file actions
48 lines (42 loc) · 1.78 KB
/
Theme.java
File metadata and controls
48 lines (42 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.util.ArrayList;
public class Theme extends Discipline {
private ArrayList<Exercise> exercises;
public Theme(String title, ArrayList<Exercise> exercises) {
super(title);
this.exercises = exercises;
UpdateGrade();
UpdateEquivalentRating();
}
public void UpdateGrade() {
double currentGradeSum = 0;
double maxGradeSum = 0;
for (var exercise : exercises) {
currentGradeSum += exercise.getCurrentOnlineLessonsGrade();
maxGradeSum += exercise.getMaxOnlineLessonsGrade();
}
currentOnlineLessonsGrade = currentGradeSum;
maxOnlineLessonsGrade = maxGradeSum;
}
public ArrayList<Exercise> getExercises() {
return exercises;
}
@Override
protected Theme clone() {
var excer = new ArrayList<Exercise>();
for (var exercise : this.getExercises())
excer.add(exercise.clone());
return new Theme(this.getTitle(), excer);
}
@Override
public String toString() {
UpdateGrade();
UpdateEquivalentRating();
var exercisesStringFormat = "";
for (int i = 0; i < getExercises().stream().count(); i++) {
exercisesStringFormat += getExercises().get(i).toString();
if (i < getExercises().stream().count() - 1) exercisesStringFormat += "\n";
}
return new String(" " + getTitle() + " (" + String.valueOf(getCurrentOnlineLessonsGrade()) + " / " + String.valueOf(getMaxOnlineLessonsGrade()) +") " + getEquivalentRating() + ":"
+ "\n" + (!getExercises().isEmpty() ? " Задания:\n" + exercisesStringFormat : " В данной теме нет заданий"));
}
}