-
Notifications
You must be signed in to change notification settings - Fork 745
/
Copy pathParticipants.java
41 lines (33 loc) · 1.32 KB
/
Participants.java
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
package nextstep.ladder.domain.participant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class Participants {
private final List<Participant> participantList;
public Participants(List<Participant> participantList) {
this.participantList = participantList;
}
public static Participants of(String[] participants) {
List<Participant> participantList = new ArrayList<>();
Arrays.stream(participants)
.forEach(participant -> participantList.add(new Participant(participant, participantList.size())));
return new Participants(participantList);
}
public void insertMyResult(String[] results) {
participantList.stream()
.forEach(participant -> participant.insertResult(results));
}
public Participant findByName(String name) {
return participantList.stream()
.filter(participant -> participant.getName().equals(name))
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("Can not find name"));
}
public int getParticipantsNumber() {
return participantList.size();
}
public final List<Participant> getParticipantList() {
return Collections.unmodifiableList(participantList);
}
}