1 | package edu.ucsb.cs156.courses.jobs; | |
2 | ||
3 | import java.util.ArrayList; | |
4 | import java.util.List; | |
5 | ||
6 | import edu.ucsb.cs156.courses.entities.GradeHistory; | |
7 | import edu.ucsb.cs156.courses.repositories.GradeHistoryRepository; | |
8 | import edu.ucsb.cs156.courses.services.UCSBGradeHistoryService; | |
9 | import edu.ucsb.cs156.courses.services.jobs.JobContext; | |
10 | import edu.ucsb.cs156.courses.services.jobs.JobContextConsumer; | |
11 | import lombok.AllArgsConstructor; | |
12 | import lombok.Getter; | |
13 | ||
14 | @AllArgsConstructor | |
15 | public class UploadGradeDataJob implements JobContextConsumer { | |
16 | @Getter | |
17 | private UCSBGradeHistoryService ucsbGradeHistoryService; | |
18 | @Getter | |
19 | private GradeHistoryRepository gradeHistoryRepository; | |
20 | ||
21 | @Override | |
22 | public void accept(JobContext ctx) throws Exception { | |
23 |
1
1. accept : removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED |
ctx.log("Updating UCSB Grade History Data"); |
24 | List<String> urls = ucsbGradeHistoryService.getUrls(); | |
25 | ||
26 | GradeHistory previous = new GradeHistory(); | |
27 | List<GradeHistory> results = null; | |
28 | for (String url : urls) { | |
29 | results = ucsbGradeHistoryService.getGradeData(url); | |
30 | GradeHistory topRow = results.get(0); | |
31 | upsertAll(gradeHistoryRepository, results); | |
32 |
1
1. accept : removed call to edu/ucsb/cs156/courses/jobs/UploadGradeDataJob::logProgress → KILLED |
logProgress(ctx, topRow, previous); |
33 | } | |
34 | ||
35 |
1
1. accept : removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED |
ctx.log("Finished updating UCSB Grade History Data"); |
36 | } | |
37 | ||
38 | private void logProgress(JobContext ctx, GradeHistory topRow, GradeHistory previous) { | |
39 |
1
1. logProgress : negated conditional → KILLED |
if (!topRow.getYyyyq().equals(previous.getYyyyq())) { |
40 |
1
1. logProgress : removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED |
ctx.log("Processing data for year: " + topRow.getYyyyq()); |
41 |
1
1. logProgress : removed call to edu/ucsb/cs156/courses/entities/GradeHistory::setYyyyq → KILLED |
previous.setYyyyq(topRow.getYyyyq()); |
42 | } | |
43 |
1
1. logProgress : removed call to edu/ucsb/cs156/courses/services/jobs/JobContext::log → KILLED |
ctx.log("Processing data for subjectArea: " + topRow.getSubjectArea()); |
44 | } | |
45 | ||
46 | public static List<GradeHistory> upsertAll( | |
47 | GradeHistoryRepository gradeHistoryRepository, | |
48 | List<GradeHistory> gradeHistories) { | |
49 | List<GradeHistory> result = new ArrayList<GradeHistory>(); | |
50 | for (GradeHistory gradeHistory : gradeHistories) { | |
51 | List<GradeHistory> query = gradeHistoryRepository.findByYyyyqAndCourseAndInstructorAndGrade( | |
52 | gradeHistory.getYyyyq(), gradeHistory.getCourse(), gradeHistory.getInstructor(), | |
53 | gradeHistory.getGrade()); | |
54 |
1
1. upsertAll : negated conditional → KILLED |
if (query.size() == 0) { |
55 | gradeHistory = gradeHistoryRepository.save(gradeHistory); | |
56 | result.add(gradeHistory); | |
57 | } else { | |
58 | GradeHistory existing = query.get(0); | |
59 |
1
1. upsertAll : removed call to edu/ucsb/cs156/courses/entities/GradeHistory::setCount → KILLED |
existing.setCount(gradeHistory.getCount()); |
60 | existing = gradeHistoryRepository.save(existing); | |
61 | result.add(existing); | |
62 | } | |
63 | } | |
64 |
1
1. upsertAll : replaced return value with Collections.emptyList for edu/ucsb/cs156/courses/jobs/UploadGradeDataJob::upsertAll → KILLED |
return result; |
65 | } | |
66 | } | |
Mutations | ||
23 |
1.1 |
|
32 |
1.1 |
|
35 |
1.1 |
|
39 |
1.1 |
|
40 |
1.1 |
|
41 |
1.1 |
|
43 |
1.1 |
|
54 |
1.1 |
|
59 |
1.1 |
|
64 |
1.1 |