| 1 | package edu.ucsb.cs156.frontiers.entities; | |
| 2 | ||
| 3 | import com.fasterxml.jackson.annotation.JsonIgnore; | |
| 4 | import edu.ucsb.cs156.frontiers.enums.OrgStatus; | |
| 5 | import edu.ucsb.cs156.frontiers.enums.RosterStatus; | |
| 6 | import jakarta.persistence.*; | |
| 7 | import java.util.List; | |
| 8 | import lombok.AllArgsConstructor; | |
| 9 | import lombok.Builder; | |
| 10 | import lombok.Data; | |
| 11 | import lombok.NoArgsConstructor; | |
| 12 | import lombok.ToString; | |
| 13 | import org.hibernate.annotations.Fetch; | |
| 14 | import org.hibernate.annotations.FetchMode; | |
| 15 | ||
| 16 | @Data | |
| 17 | @AllArgsConstructor | |
| 18 | @NoArgsConstructor | |
| 19 | @Builder | |
| 20 | @Entity | |
| 21 | @Table( | |
| 22 | uniqueConstraints = { | |
| 23 | @UniqueConstraint( | |
| 24 | name = "UK_ROSTER_STUDENT_COURSE_STUDENT", | |
| 25 | columnNames = {"course_id", "student_id"}), | |
| 26 | @UniqueConstraint( | |
| 27 | name = "UK_ROSTER_STUDENT_COURSE_EMAIL", | |
| 28 | columnNames = {"course_id", "email"}) | |
| 29 | }) | |
| 30 | public class RosterStudent { | |
| 31 | @Id | |
| 32 | @GeneratedValue(strategy = GenerationType.IDENTITY) | |
| 33 | private Long id; | |
| 34 | ||
| 35 | @ManyToOne | |
| 36 | @JoinColumn(name = "course_id") | |
| 37 | private Course course; | |
| 38 | ||
| 39 | private String studentId; | |
| 40 | private String firstName; | |
| 41 | private String lastName; | |
| 42 | private String email; | |
| 43 | @Builder.Default private String section = ""; | |
| 44 | ||
| 45 | @ManyToOne | |
| 46 | @JoinColumn(name = "user_id") | |
| 47 | @ToString.Exclude | |
| 48 | private User user; | |
| 49 | ||
| 50 | @OneToMany(cascade = CascadeType.ALL, mappedBy = "rosterStudent") | |
| 51 | @Fetch(FetchMode.JOIN) | |
| 52 | @JsonIgnore | |
| 53 | @ToString.Exclude | |
| 54 | private List<TeamMember> teamMembers; | |
| 55 | ||
| 56 | @Enumerated(EnumType.STRING) | |
| 57 | private RosterStatus rosterStatus; | |
| 58 | ||
| 59 | @Enumerated(EnumType.STRING) | |
| 60 | private OrgStatus orgStatus; | |
| 61 | ||
| 62 | private Integer githubId; | |
| 63 | private String githubLogin; | |
| 64 | ||
| 65 | public List<String> getTeams() { | |
| 66 |
1
1. getTeams : negated conditional → KILLED |
if (teamMembers == null) { |
| 67 | return List.of(); | |
| 68 | } else { | |
| 69 |
2
1. lambda$getTeams$0 : replaced return value with "" for edu/ucsb/cs156/frontiers/entities/RosterStudent::lambda$getTeams$0 → KILLED 2. getTeams : replaced return value with Collections.emptyList for edu/ucsb/cs156/frontiers/entities/RosterStudent::getTeams → KILLED |
return teamMembers.stream().map(tm -> tm.getTeam().getName()).toList(); |
| 70 | } | |
| 71 | } | |
| 72 | } | |
Mutations | ||
| 66 |
1.1 |
|
| 69 |
1.1 2.2 |