From 7f6f6c8ea80b3d630685a7d360dfcdd05e3adcdf Mon Sep 17 00:00:00 2001
From: Paul Reichmuth
Date: Thu, 18 Dec 2025 15:33:44 +0100
Subject: [PATCH] refactor passedStations and members to be of type List
instead of Map, as a key is not needed
---
.../timekeep_backend/entities/Team.java | 35 +++++++++----------
1 file changed, 17 insertions(+), 18 deletions(-)
diff --git a/src/main/java/de/pnreichmuth/timekeep_backend/entities/Team.java b/src/main/java/de/pnreichmuth/timekeep_backend/entities/Team.java
index 52d7f27..46132e0 100644
--- a/src/main/java/de/pnreichmuth/timekeep_backend/entities/Team.java
+++ b/src/main/java/de/pnreichmuth/timekeep_backend/entities/Team.java
@@ -4,8 +4,8 @@ import jakarta.persistence.*;
import lombok.*;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.List;
+import java.util.ArrayList;
import java.util.UUID;
@Entity
@@ -25,31 +25,31 @@ public class Team {
private List members;
@OneToMany(cascade = CascadeType.ALL)
- private Map passedStations;
+ private List passedStations;
public Team(){
this.teamName = null;
this.firstSemesterTeam = true;
- this.members = new HashMap<>(4);
- this.passedStations = new HashMap<>();
+ this.members = new ArrayList<>(4);
+ this.passedStations = new ArrayList<>();
}
- public Team(String teamName, boolean firstSemesterTeam, Map members, Map passedStations){
+ public Team(String teamName, boolean firstSemesterTeam, List members, List passedStations){
this.teamName = teamName;
this.firstSemesterTeam = firstSemesterTeam;
- this.members = new HashMap<>(members.size());
- this.members.putAll(members);
- this.passedStations = new HashMap<>(passedStations.size());
- this.passedStations.putAll(passedStations);
+ this.members = new ArrayList<>(members.size());
+ this.members.addAll(members);
+ this.passedStations = new ArrayList<>(passedStations.size());
+ this.passedStations.addAll(passedStations);
}
/**
* Treat this team as a team of first semester students, if at least 50% of its members are in the first semester
*/
private void checkFirstSemesterTeam(){
- long erstiCount = members.entrySet().stream()
+ long erstiCount = members.stream()
.filter(
- e -> e.getValue().getIsFirstSemester()
+ Racer::getIsFirstSemester
).count();
double percentFirstSemester = erstiCount /(double)members.size();
this.firstSemesterTeam = percentFirstSemester >= 0.5;
@@ -60,7 +60,8 @@ public class Team {
* @param newMember the Racer object to be added to the team
*/
public void addMember(Racer newMember){
- this.members.put(String.format("%s, %s", newMember.getLastName(), newMember.getFirstName()), newMember );
+ this.members.add(newMember);
+ newMember.setMemberTeam(this);
this.checkFirstSemesterTeam();
}
@@ -70,11 +71,9 @@ public class Team {
* @param lastName the last name of the racer to be removed
*/
public void removeMember(String firstName, String lastName){
- this.members.remove(this.generateMapKeyFromName(firstName, lastName));
+ this.members.forEach(racer ->{
+ if(firstName.equals(racer.getFirstName()) && lastName.equals(racer.getLastName())) members.remove(racer);
+ });
this.checkFirstSemesterTeam();
}
-
- private String generateMapKeyFromName(String firstName, String lastName){
- return String.format("%s, %s", firstName, lastName);
- }
}