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